netty5/codec-dns/src/main/java/io/netty/handler/codec/dns
Trustin Lee 4b38b72a0d Fix incorrect name encoding/decoding in DNS records
Motivation:

- The decoded name should always end with a dot (.), but we currently
  strip it, which is incorrect.
  - (O) 0 -> "."
  - (X) 0 -> ""
  - (O) 5 netty 2 io 0 -> "netty.io."
  - (X) 5 netty 2 io 0 -> "netty.io"
- The encoded name should end with a null-label, which is a label whose
  length is 0, but we currently append an extra NUL, causing FORMERR(1)
  on a strict DNS server:
  - (O) . -> 0
  - (X) . -> 0 0
  - (O) netty.io. -> 5 netty 2 io 0
  - (X) netty.io. -> 5 netty 2 io 0 0

Modifications:

- Make sure to append '.' when decoding a name.
- Improve index checks so that the decoder can raise
  CorruptFrameException instead of IIOBE
- Do not encode extra NUL
- Add more tests

Result:

Robustness and correctness
2016-04-01 22:18:33 +02:00
..
AbstractDnsMessage.java Fix missing ResourceLeak.close() in AbstractDnsMessage 2015-05-04 12:05:59 +09:00
AbstractDnsRecord.java [#4993] Correctly handle trailing dot in DNS requests and responses for the hostname. 2016-03-22 12:30:46 +01:00
DatagramDnsQuery.java Revamp DNS codec 2015-05-01 11:33:16 +09:00
DatagramDnsQueryDecoder.java Make codec-dns can support build a dns server, reply answer from client. 2016-01-18 16:41:44 +09:00
DatagramDnsQueryEncoder.java Make codec-dns can support build a dns server, reply answer from client. 2016-01-18 16:41:44 +09:00
DatagramDnsResponse.java Revamp DNS codec 2015-05-01 11:33:16 +09:00
DatagramDnsResponseDecoder.java Make codec-dns can support build a dns server, reply answer from client. 2016-01-18 16:41:44 +09:00
DatagramDnsResponseEncoder.java Make codec-dns can support build a dns server, reply answer from client. 2016-01-18 16:41:44 +09:00
DefaultDnsPtrRecord.java Add support for directly decoding/encoding DNS PTR Records 2016-03-08 14:59:46 +01:00
DefaultDnsQuery.java Revamp DNS codec 2015-05-01 11:33:16 +09:00
DefaultDnsQuestion.java Revamp DNS codec 2015-05-01 11:33:16 +09:00
DefaultDnsRawRecord.java Revamp DNS codec 2015-05-01 11:33:16 +09:00
DefaultDnsRecordDecoder.java Fix incorrect name encoding/decoding in DNS records 2016-04-01 22:18:33 +02:00
DefaultDnsRecordEncoder.java Fix incorrect name encoding/decoding in DNS records 2016-04-01 22:18:33 +02:00
DefaultDnsResponse.java Revamp DNS codec 2015-05-01 11:33:16 +09:00
DnsMessage.java Revamp DNS codec 2015-05-01 11:33:16 +09:00
DnsMessageUtil.java Fix type inference w/ JDK8 2016-03-23 18:06:38 +01:00
DnsOpCode.java Revamp DNS codec 2015-05-01 11:33:16 +09:00
DnsPtrRecord.java Add support for directly decoding/encoding DNS PTR Records 2016-03-08 14:59:46 +01:00
DnsQuery.java Revamp DNS codec 2015-05-01 11:33:16 +09:00
DnsQuestion.java Revamp DNS codec 2015-05-01 11:33:16 +09:00
DnsRawRecord.java Revamp DNS codec 2015-05-01 11:33:16 +09:00
DnsRecord.java Revamp DNS codec 2015-05-01 11:33:16 +09:00
DnsRecordDecoder.java Provide more control over DnsNameResolver.query() / Add NameResolver.resolveAll() 2015-08-18 17:40:13 +09:00
DnsRecordEncoder.java Revamp DNS codec 2015-05-01 11:33:16 +09:00
DnsRecordType.java Revamp DNS codec 2015-05-01 11:33:16 +09:00
DnsResponse.java Revamp DNS codec 2015-05-01 11:33:16 +09:00
DnsResponseCode.java Revamp DNS codec 2015-05-01 11:33:16 +09:00
DnsSection.java Revamp DNS codec 2015-05-01 11:33:16 +09:00
package-info.java Revamp DNS codec 2015-05-01 11:33:16 +09:00