|
using System;
using System.Collections.Generic;
using System.Text;
namespace LumiSoft.Net.Dns.Client
{
/// <summary>
/// DNS SRV record. SRV record specifies the location of services. Defined in RFC 2782.
/// </summary>
[Serializable]
public class DNS_rr_SRV : DNS_rr_base
{
private int m_Priority = 1;
private int m_Weight = 1;
private int m_Port = 0;
private string m_Target = "";
/// <summary>
/// Default constructor.
/// </summary>
/// <param name="priority">Service priority.</param>
/// <param name="weight">Weight value.</param>
/// <param name="port">Service port.</param>
/// <param name="target">Service provider host name or IP address.</param>
/// <param name="ttl">Time to live value in seconds.</param>
public DNS_rr_SRV(int priority,int weight,int port,string target,int ttl) : base(QTYPE.SRV,ttl)
{
m_Priority = priority;
m_Weight = weight;
m_Port = port;
m_Target = target;
}
#region static method Parse
/// <summary>
/// Parses resource record from reply data.
/// </summary>
/// <param name="reply">DNS server reply data.</param>
/// <param name="offset">Current offset in reply data.</param>
/// <param name="rdLength">Resource record data length.</param>
/// <param name="ttl">Time to live in seconds.</param>
public static DNS_rr_SRV Parse(byte[] reply,ref int offset,int rdLength,int ttl)
{
// Priority Weight Port Target
// Priority
int priority = reply[offset++] << 8 | reply[offset++];
// Weight
int weight = reply[offset++] << 8 | reply[offset++];
// Port
int port = reply[offset++] << 8 | reply[offset++];
// Target
string target = "";
Dns_Client.GetQName(reply,ref offset,ref target);
return new DNS_rr_SRV(priority,weight,port,target,ttl);
}
#endregion
#region Properties Implementation
/// <summary>
/// Gets service priority. Lowest value means greater priority.
/// </summary>
public int Priority
{
get{ return m_Priority; }
}
/// <summary>
/// Gets weight. The weight field specifies a relative weight for entries with the same priority.
/// Larger weights SHOULD be given a proportionately higher probability of being selected.
/// </summary>
public int Weight
{
get{ return m_Weight; }
}
/// <summary>
/// Port where service runs.
/// </summary>
public int Port
{
get{ return m_Port; }
}
/// <summary>
/// Service provider host name or IP address.
/// </summary>
public string Target
{
get{ return m_Target; }
}
#endregion
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.