mirror of
https://github.com/AdguardTeam/AdGuardHome.git
synced 2024-11-25 06:25:44 +03:00
rewrite: qtype matching
This commit is contained in:
parent
18392943fa
commit
18a6066df5
2 changed files with 35 additions and 10 deletions
|
@ -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.
|
||||||
|
|
|
@ -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",
|
||||||
|
|
Loading…
Reference in a new issue