private static void VerifyPayloadAddressV6(Answer a, string strAddressExpected) { Assert.AreEqual(16, a.Rdlength); Assert.IsTrue(a.Payload is AddressV6); AddressV6 aa = (AddressV6)a.Payload; IPAddress ip = IPAddress.Parse(strAddressExpected); byte[] ipBytes = ip.GetAddressBytes(); Assert.IsTrue(ipBytes.Length == aa.IpV6.Length); for (byte n = 0; n < ipBytes.Length; n++) { Assert.IsTrue(ipBytes[n] == aa.IpV6[n], "Address not expected as " + strAddressExpected); } }
private void _read() { _name = new DomainName(m_io, this, m_root); _type = ((DnsPacket.TypeType)m_io.ReadU2be()); _answerClass = ((DnsPacket.ClassType)m_io.ReadU2be()); _ttl = m_io.ReadS4be(); _rdlength = m_io.ReadU2be(); switch (Type) { case DnsPacket.TypeType.Srv: { __raw_payload = m_io.ReadBytes(Rdlength); var io___raw_payload = new KaitaiStream(__raw_payload); _payload = new Service(io___raw_payload, this, m_root); break; } case DnsPacket.TypeType.A: { __raw_payload = m_io.ReadBytes(Rdlength); var io___raw_payload = new KaitaiStream(__raw_payload); _payload = new Address(io___raw_payload, this, m_root); break; } case DnsPacket.TypeType.Cname: { __raw_payload = m_io.ReadBytes(Rdlength); var io___raw_payload = new KaitaiStream(__raw_payload); _payload = new DomainName(io___raw_payload, this, m_root); break; } case DnsPacket.TypeType.Ns: { __raw_payload = m_io.ReadBytes(Rdlength); var io___raw_payload = new KaitaiStream(__raw_payload); _payload = new DomainName(io___raw_payload, this, m_root); break; } case DnsPacket.TypeType.Soa: { __raw_payload = m_io.ReadBytes(Rdlength); var io___raw_payload = new KaitaiStream(__raw_payload); _payload = new AuthorityInfo(io___raw_payload, this, m_root); break; } case DnsPacket.TypeType.Mx: { __raw_payload = m_io.ReadBytes(Rdlength); var io___raw_payload = new KaitaiStream(__raw_payload); _payload = new MxInfo(io___raw_payload, this, m_root); break; } case DnsPacket.TypeType.Txt: { __raw_payload = m_io.ReadBytes(Rdlength); var io___raw_payload = new KaitaiStream(__raw_payload); _payload = new TxtBody(io___raw_payload, this, m_root); break; } case DnsPacket.TypeType.Ptr: { __raw_payload = m_io.ReadBytes(Rdlength); var io___raw_payload = new KaitaiStream(__raw_payload); _payload = new DomainName(io___raw_payload, this, m_root); break; } case DnsPacket.TypeType.Aaaa: { __raw_payload = m_io.ReadBytes(Rdlength); var io___raw_payload = new KaitaiStream(__raw_payload); _payload = new AddressV6(io___raw_payload, this, m_root); break; } default: { _payload = m_io.ReadBytes(Rdlength); break; } } }