diff options
author | 2018-05-09 12:35:42 +0100 | |
---|---|---|
committer | 2018-05-09 12:35:42 +0100 | |
commit | 0e5e59c327387472c60fb5f2f2c7d84a89b879c9 (patch) | |
tree | 48a0c7a1fcb6e94fc889e1cd4fd57632414f3e16 /request | |
parent | 68b45f5377ff0c8661f987398e316f3acae4835d (diff) | |
download | coredns-0e5e59c327387472c60fb5f2f2c7d84a89b879c9.tar.gz coredns-0e5e59c327387472c60fb5f2f2c7d84a89b879c9.tar.zst coredns-0e5e59c327387472c60fb5f2f2c7d84a89b879c9.zip |
request.Match check Response bit as well (#1775)
* request.Match check Response bit as well
We should check this bit and reject them as invalid.
* Fix test
Diffstat (limited to 'request')
-rw-r--r-- | request/request.go | 4 | ||||
-rw-r--r-- | request/request_test.go | 1 |
2 files changed, 5 insertions, 0 deletions
diff --git a/request/request.go b/request/request.go index c45f6e571..64504e6b4 100644 --- a/request/request.go +++ b/request/request.go @@ -380,6 +380,10 @@ func (r *Request) Match(reply *dns.Msg) bool { return false } + if reply.Response == false { + return false + } + if strings.ToLower(reply.Question[0].Name) != r.Name() { return false } diff --git a/request/request_test.go b/request/request_test.go index 41630d669..97f17a605 100644 --- a/request/request_test.go +++ b/request/request_test.go @@ -162,6 +162,7 @@ func TestRequestScrubAnswerExact(t *testing.T) { func TestRequestMatch(t *testing.T) { st := testRequest() reply := new(dns.Msg) + reply.Response = true reply.SetQuestion("example.com.", dns.TypeMX) if b := st.Match(reply); b { |