aboutsummaryrefslogtreecommitdiff
path: root/plugin/pkg/edns/edns.go
diff options
context:
space:
mode:
authorGravatar Ben Kaplan <77549469+kaplanben@users.noreply.github.com> 2022-12-01 16:07:13 +0200
committerGravatar GitHub <noreply@github.com> 2022-12-01 09:07:13 -0500
commit9b94696b115d2d1394388e2b15c8ff05e5273cdf (patch)
treec358b0e8ead75ebd16fecc76372ec4c4fb82d255 /plugin/pkg/edns/edns.go
parent5517c3fd30f298d3967465cc989f050ebb9292e0 (diff)
downloadcoredns-9b94696b115d2d1394388e2b15c8ff05e5273cdf.tar.gz
coredns-9b94696b115d2d1394388e2b15c8ff05e5273cdf.tar.zst
coredns-9b94696b115d2d1394388e2b15c8ff05e5273cdf.zip
plugin/edns: remove truncating of question section on bad EDNS version (#5787)
* plugin/edns: remove truncating of question section on bad EDNS version EDNS requests of "Unknown Version" removed the query section altogether. Not sure why since this is not require (see [link](https://kb.isc.org/docs/edns-compatibility-dig-queries) This cause issues with DNS solutions that uses this information (initial queried name, type and class) in order to route the response to the right client (e.g. PDNS). The change here is to keep the inital query section as is. Signed-off-by: Ben Kaplan <ben.kaplan@redis.com> * adding tests for edns0 version check Signed-off-by: Ben Kaplan <ben.kaplan@redis.com> * adding tests for non-edns0 version check Signed-off-by: Ben Kaplan <ben.kaplan@redis.com> Signed-off-by: Ben Kaplan <ben.kaplan@redis.com>
Diffstat (limited to 'plugin/pkg/edns/edns.go')
-rw-r--r--plugin/pkg/edns/edns.go5
1 files changed, 1 insertions, 4 deletions
diff --git a/plugin/pkg/edns/edns.go b/plugin/pkg/edns/edns.go
index 31f57ea9b..cd8639915 100644
--- a/plugin/pkg/edns/edns.go
+++ b/plugin/pkg/edns/edns.go
@@ -36,8 +36,7 @@ func SupportedOption(option uint16) bool {
// Version checks the EDNS version in the request. If error
// is nil everything is OK and we can invoke the plugin. If non-nil, the
-// returned Msg is valid to be returned to the client (and should). For some
-// reason this response should not contain a question RR in the question section.
+// returned Msg is valid to be returned to the client (and should).
func Version(req *dns.Msg) (*dns.Msg, error) {
opt := req.IsEdns0()
if opt == nil {
@@ -48,8 +47,6 @@ func Version(req *dns.Msg) (*dns.Msg, error) {
}
m := new(dns.Msg)
m.SetReply(req)
- // zero out question section, wtf.
- m.Question = nil
o := new(dns.OPT)
o.Hdr.Name = "."