rewrite: qtype matching

This commit is contained in:
Dimitry Kolyshev 2022-12-30 23:42:55 +07:00
parent 18392943fa
commit 18a6066df5
2 changed files with 35 additions and 10 deletions

View file

@ -217,9 +217,9 @@ func (s *DefaultStorage) resetRules() (err error) {
// matchesQType returns true if dnsrewrite matches the question type qt. // matchesQType returns true if dnsrewrite matches the question type qt.
func matchesQType(dnsrr *rules.DNSRewrite, qt uint16) (ok bool) { func matchesQType(dnsrr *rules.DNSRewrite, qt uint16) (ok bool) {
// Reject types other than A and AAAA. // Accept types other than A and AAAA.
if qt != dns.TypeA && qt != dns.TypeAAAA { if qt != dns.TypeA && qt != dns.TypeAAAA {
return false return true
} }
// Add CNAMEs, since they match for all types requests. // Add CNAMEs, since they match for all types requests.

View file

@ -116,9 +116,29 @@ func TestDefaultStorage_MatchRequest(t *testing.T) {
wantDNSRewrites: nil, wantDNSRewrites: nil,
dtyp: dns.TypeA, dtyp: dns.TypeA,
}, { }, {
name: "not_filtered_qtype", name: "other_qtype",
host: "www.host.com", host: "www.host.com",
wantDNSRewrites: nil, wantDNSRewrites: []*rules.DNSRewrite{{
Value: nil,
NewCNAME: "host.com",
RCode: dns.RcodeSuccess,
RRType: dns.TypeNone,
}, {
Value: net.IP{1, 2, 3, 4}.To16(),
NewCNAME: "",
RCode: dns.RcodeSuccess,
RRType: dns.TypeA,
}, {
Value: net.IP{1, 2, 3, 5}.To16(),
NewCNAME: "",
RCode: dns.RcodeSuccess,
RRType: dns.TypeA,
}, {
Value: net.ParseIP("1:2:3::4"),
NewCNAME: "",
RCode: dns.RcodeSuccess,
RRType: dns.TypeAAAA,
}},
dtyp: dns.TypeMX, dtyp: dns.TypeMX,
}, { }, {
name: "rewritten_a", name: "rewritten_a",
@ -253,7 +273,12 @@ func TestDefaultStorage_MatchRequest(t *testing.T) {
}, { }, {
name: "issue4008", name: "issue4008",
host: "somehost.com", host: "somehost.com",
wantDNSRewrites: nil, wantDNSRewrites: []*rules.DNSRewrite{{
Value: net.IP{0, 0, 0, 0}.To16(),
NewCNAME: "",
RCode: dns.RcodeSuccess,
RRType: dns.TypeA,
}},
dtyp: dns.TypeHTTPS, dtyp: dns.TypeHTTPS,
}, { }, {
name: "issue4016", name: "issue4016",