aboutsummaryrefslogtreecommitdiff
path: root/plugin/kubernetes/controller.go
diff options
context:
space:
mode:
authorGravatar Tobias Schmidt <tobidt@gmail.com> 2018-01-24 14:28:26 +0100
committerGravatar Miek Gieben <miek@miek.nl> 2018-01-24 13:28:26 +0000
commit697e2b4bda6553f0dd66e7f0c48071948b66f4ba (patch)
treeaa06f16e9b7c501f1c078925b4e590cab8027475 /plugin/kubernetes/controller.go
parentb707438534576e3f0596054a201bc271b537095e (diff)
downloadcoredns-697e2b4bda6553f0dd66e7f0c48071948b66f4ba.tar.gz
coredns-697e2b4bda6553f0dd66e7f0c48071948b66f4ba.tar.zst
coredns-697e2b4bda6553f0dd66e7f0c48071948b66f4ba.zip
Fix truncation of messages longer than permitted by the client (#1417)
* Fix truncation of messages longer than permitted by the client CoreDNS currently doesn't respect the maximum response size advertised by the client and returns the full answer on a message with the TC bit set. This breaks client implementations which rely on DNS servers respecting the advertised size limit, for example the Ruby stdlib client. It also has negative network performance implications, as large messages will be split up into multiple UDP packets, even though the client will discard the truncated response anyway. While RFC 2181 permits the response of partial RRSets, finding the correct number of records fitting into the advertised response size is non-trivial. As clients should ignore truncated messages, this change simply removes the full RRSet on truncated messages. * Remove incorrect etcd test assertion If a client requests a TXT record larger than its advertised buffer size, a DNS server should _not_ respond with the answer, but truncate the message and set the TC bit, so that the client can retry using TCP.
Diffstat (limited to 'plugin/kubernetes/controller.go')
0 files changed, 0 insertions, 0 deletions