diff options
author | 2018-03-15 08:42:49 +0000 | |
---|---|---|
committer | 2018-03-15 08:42:49 +0000 | |
commit | b813706bafc61ed3c779223893d25793c7c43726 (patch) | |
tree | 46db2d9788940bbc890426b1c5fc8c42bf21ff13 /request/request.go | |
parent | 3e6489ef67270db1ad8963d572e0dc79960a6781 (diff) | |
download | coredns-b813706bafc61ed3c779223893d25793c7c43726.tar.gz coredns-b813706bafc61ed3c779223893d25793c7c43726.tar.zst coredns-b813706bafc61ed3c779223893d25793c7c43726.zip |
request: add match function (#1615)
Diffstat (limited to 'request/request.go')
-rw-r--r-- | request/request.go | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/request/request.go b/request/request.go index 0ce341a1b..0bca1a405 100644 --- a/request/request.go +++ b/request/request.go @@ -361,6 +361,24 @@ func (r *Request) Clear() { r.name = "" } +// Match checks if the reply matches the qname and qtype from the request, it returns +// false when they don't match. +func (r *Request) Match(reply *dns.Msg) bool { + if len(reply.Question) != 1 { + return false + } + + if strings.ToLower(reply.Question[0].Name) != r.Name() { + return false + } + + if reply.Question[0].Qtype != r.QType() { + return false + } + + return true +} + const ( // TODO(miek): make this less awkward. doTrue = 1 |