internal override void ReadRDATA(Internal.ByteReader reader) { PRIORITY = reader.ReadUIn16(); WEIGHT = reader.ReadUIn16(); PORT = reader.ReadUIn16(); TARGET = reader.ReadDomain(); }
internal override void ReadRDATA(Internal.ByteReader reader) { // The format of the data within a DNS TXT record is one or more // strings, packed together in memory without any intervening gaps // or padding bytes for word alignment. // // The format of each constituent string within the DNS TXT record is // a single length byte, followed by 0-255 bytes of text data. // TXT-DATA strings are not guaranteed to consist purely of ASCII printable // characters though this is usually the case. List <Datagram> strings = new List <Datagram>(); for (int total = 0; total < Base.RDLENGTH;) { byte length = reader.ReadByte(); if (length > 0) { if (total + length >= Base.RDLENGTH) { throw new InvalidResponseException( "Invalid length byte in TXT record: String data would exceed RDLENGTH."); } strings.Add(reader.ReadBytes(length)); } total += (length + 1); } Strings = strings.ToArray(); }
void Internal.IResponseReader.ReadResponse(Internal.ByteReader reader) { ID = reader.ReadUIn16(); ReadResponseFlags(reader.ReadUIn16()); QDCOUNT = reader.ReadUIn16(); ANCOUNT = reader.ReadUIn16(); NSCOUNT = reader.ReadUIn16(); ARCOUNT = reader.ReadUIn16(); }
internal override void ReadRDATA(Internal.ByteReader reader) { ORDER = reader.ReadUIn16(); PREFERENCE = reader.ReadUIn16(); FLAGS = Encoding.ASCII.GetString(reader.ReadCharacterString()).ToUpper(); SERVICES = reader.ReadCharacterString(); REGEXP = reader.ReadCharacterString(); REPLACEMENT = reader.ReadDomain(); }
internal override void ReadRDATA(Internal.ByteReader reader) { MNAME = reader.ReadDomain(); RNAME = reader.ReadDomain(); SERIAL = reader.ReadUint32(); REFRESH = reader.ReadUint32(); RETRY = reader.ReadUint32(); EXPIRE = reader.ReadUint32(); MINIMUM = reader.ReadUint32(); }
internal override void ReadRDATA(Internal.ByteReader reader) { if (Base.RDLENGTH != 16) { throw new InvalidResponseException(String.Format( "Invalid RDLENGTH value {0}: expected 16.", Base.RDLENGTH)); } byte[] buf = reader.ReadBytes(16); ADDRESS = new IPAddress(buf); if (ADDRESS.AddressFamily != System.Net.Sockets.AddressFamily.InterNetworkV6) { throw new InvalidResponseException(String.Format( "Not an IPv6 address: {0}.", ADDRESS.ToString())); } }
void Internal.IResponseReader.ReadResponse(Internal.ByteReader reader) { NAME = reader.ReadDomain(); // TYPE may be not understood TypeValue = reader.ReadUIn16(); if (Enum.IsDefined(typeof(QTYPE), TypeValue)) { // known type TYPE = (QTYPE)TypeValue; TypeString = TYPE.ToString(); } else { // unknown type TYPE = null; TypeString = String.Format("[{0}]", TypeValue.ToString()); } CLASS = reader.ReadUIn16Enum <QCLASS>(); TTL = reader.ReadUint32(); RDLENGTH = reader.ReadUIn16(); }
internal override void ReadRDATA(Internal.ByteReader reader) { NSDNAME = reader.ReadDomain(); }
internal override void ReadRDATA(Internal.ByteReader reader) { CANONICAL = reader.ReadDomain(); }
internal abstract void ReadRDATA(Internal.ByteReader reader);
internal override void ReadRDATA(Internal.ByteReader reader) { RDATA = reader.ReadBytes(Base.RDLENGTH); }
internal override void ReadRDATA(Internal.ByteReader reader) { PREFERENCE = reader.ReadUIn16(); EXCHANGE = reader.ReadDomain(); }
void Internal.IResponseReader.ReadResponse(Internal.ByteReader reader) { QNAME = reader.ReadDomain(); QTYPE = reader.ReadUIn16Enum <QTYPE>(); QCLASS = reader.ReadUIn16Enum <QCLASS>(); }
internal override void ReadRDATA(Internal.ByteReader reader) { throw new NotImplementedException(); }