Пример #1
0
        private static void TestFormatRoundTrip(byte[] packet, DnsMessage message)
        {
            byte[] buffer       = new byte[packet.Length];
            int    bytesWritten = DnsParser.FormatMessage(message, buffer);

            Assert.Equal(buffer.Length, bytesWritten);
            Assert.Equal(packet, buffer);
        }
Пример #2
0
        public void NamePointerFormatting()
        {
            var message = new DnsMessage()
            {
                Queries = new[]
                {
                    new DnsQuery("example.com", DnsRecordType.A, DnsEndpointClass.IN),
                    new DnsQuery("www.example.com", DnsRecordType.A, DnsEndpointClass.IN),
                    new DnsQuery("com", DnsRecordType.A, DnsEndpointClass.IN),
                }
            };

            byte[] buffer       = new byte[1024];
            int    bytesWritten = DnsParser.FormatMessage(message, buffer, enableNameCompression: true);
            var    message2     = DnsParser.ParseMessage(buffer.AsSpan(0, bytesWritten), out int bytesConsumed);

            Assert.Equal(bytesWritten, bytesConsumed);
            Assert.Equal(3, message2.Queries.Count);
            Assert.Equal("example.com", message2.Queries[0].QueryName);
            Assert.Equal("www.example.com", message2.Queries[1].QueryName);
            Assert.Equal("com", message2.Queries[2].QueryName);
        }