aboutsummaryrefslogtreecommitdiff
path: root/src/net/dnsmsg.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/dnsmsg.go')
-rw-r--r--src/net/dnsmsg.go20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/net/dnsmsg.go b/src/net/dnsmsg.go
index c01381f190..5e339c5fbf 100644
--- a/src/net/dnsmsg.go
+++ b/src/net/dnsmsg.go
@@ -934,3 +934,23 @@ func (dns *dnsMsg) String() string {
}
return s
}
+
+// IsResponseTo reports whether m is an acceptable response to query.
+func (m *dnsMsg) IsResponseTo(query *dnsMsg) bool {
+ if !m.response {
+ return false
+ }
+ if m.id != query.id {
+ return false
+ }
+ if len(m.question) != len(query.question) {
+ return false
+ }
+ for i, q := range m.question {
+ q2 := query.question[i]
+ if !equalASCIILabel(q.Name, q2.Name) || q.Qtype != q2.Qtype || q.Qclass != q2.Qclass {
+ return false
+ }
+ }
+ return true
+}