コード例 #1
0
 internal override void ReadRDATA(Internal.ByteReader reader)
 {
     PRIORITY = reader.ReadUIn16();
     WEIGHT   = reader.ReadUIn16();
     PORT     = reader.ReadUIn16();
     TARGET   = reader.ReadDomain();
 }
コード例 #2
0
        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();
        }
コード例 #3
0
ファイル: Header.cs プロジェクト: Moerty/dnstools
 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();
 }
コード例 #4
0
ファイル: NAPTR.cs プロジェクト: Moerty/dnstools
 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();
 }
コード例 #5
0
ファイル: SOA.cs プロジェクト: Moerty/dnstools
 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();
 }
コード例 #6
0
ファイル: AAAA.cs プロジェクト: Moerty/dnstools
        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()));
            }
        }
コード例 #7
0
ファイル: RRBase.cs プロジェクト: Moerty/dnstools
        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();
        }
コード例 #8
0
ファイル: NS.cs プロジェクト: Moerty/dnstools
 internal override void ReadRDATA(Internal.ByteReader reader)
 {
     NSDNAME = reader.ReadDomain();
 }
コード例 #9
0
 internal override void ReadRDATA(Internal.ByteReader reader)
 {
     CANONICAL = reader.ReadDomain();
 }
コード例 #10
0
ファイル: RR.cs プロジェクト: Moerty/dnstools
 internal abstract void ReadRDATA(Internal.ByteReader reader);
コード例 #11
0
ファイル: Default.cs プロジェクト: Moerty/dnstools
 internal override void ReadRDATA(Internal.ByteReader reader)
 {
     RDATA = reader.ReadBytes(Base.RDLENGTH);
 }
コード例 #12
0
 internal override void ReadRDATA(Internal.ByteReader reader)
 {
     PREFERENCE = reader.ReadUIn16();
     EXCHANGE   = reader.ReadDomain();
 }
コード例 #13
0
ファイル: Question.cs プロジェクト: Moerty/dnstools
 void Internal.IResponseReader.ReadResponse(Internal.ByteReader reader)
 {
     QNAME  = reader.ReadDomain();
     QTYPE  = reader.ReadUIn16Enum <QTYPE>();
     QCLASS = reader.ReadUIn16Enum <QCLASS>();
 }
コード例 #14
0
ファイル: OPT.cs プロジェクト: Moerty/dnstools
 internal override void ReadRDATA(Internal.ByteReader reader)
 {
     throw new NotImplementedException();
 }