Pull request: dnsforward: preserve domain name case
Updates #3194. Squashed commit of the following: commit 42a363c56b9b7441f9dc4bfc9d881b1b1e8f6b57 Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Mon May 31 15:15:59 2021 +0300 dnsforward: preserve domain name case
This commit is contained in:
parent
78d47d8884
commit
c95acf73ab
|
@ -37,6 +37,7 @@ released by then.
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
|
- Domain name case in responses ([#3194]).
|
||||||
- Custom upstreams selection for clients with client IDs in DNS-over-TLS and
|
- Custom upstreams selection for clients with client IDs in DNS-over-TLS and
|
||||||
DNS-over-HTTP ([#3186]).
|
DNS-over-HTTP ([#3186]).
|
||||||
- Incorrect client-based filtering applying logic ([#2875]).
|
- Incorrect client-based filtering applying logic ([#2875]).
|
||||||
|
@ -48,6 +49,7 @@ released by then.
|
||||||
[#3184]: https://github.com/AdguardTeam/AdGuardHome/issues/3184
|
[#3184]: https://github.com/AdguardTeam/AdGuardHome/issues/3184
|
||||||
[#3185]: https://github.com/AdguardTeam/AdGuardHome/issues/3185
|
[#3185]: https://github.com/AdguardTeam/AdGuardHome/issues/3185
|
||||||
[#3186]: https://github.com/AdguardTeam/AdGuardHome/issues/3186
|
[#3186]: https://github.com/AdguardTeam/AdGuardHome/issues/3186
|
||||||
|
[#3194]: https://github.com/AdguardTeam/AdGuardHome/issues/3194
|
||||||
[#3198]: https://github.com/AdguardTeam/AdGuardHome/issues/3198
|
[#3198]: https://github.com/AdguardTeam/AdGuardHome/issues/3198
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -129,10 +129,12 @@ func (a *accessCtx) IsBlockedIP(ip net.IP) (bool, string) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsBlockedDomain - return TRUE if this domain should be blocked
|
// IsBlockedDomain - return TRUE if this domain should be blocked
|
||||||
func (a *accessCtx) IsBlockedDomain(host string) bool {
|
func (a *accessCtx) IsBlockedDomain(host string) (ok bool) {
|
||||||
a.lock.Lock()
|
a.lock.Lock()
|
||||||
_, ok := a.blockedHostsEngine.Match(host)
|
defer a.lock.Unlock()
|
||||||
a.lock.Unlock()
|
|
||||||
|
_, ok = a.blockedHostsEngine.Match(strings.ToLower(host))
|
||||||
|
|
||||||
return ok
|
return ok
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -20,13 +20,10 @@ func (s *Server) beforeRequestHandler(_ *proxy.Proxy, d *proxy.DNSContext) (bool
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(d.Req.Question) == 1 {
|
if len(d.Req.Question) == 1 {
|
||||||
// It's lowercased here since this handler is called before any
|
host := strings.TrimSuffix(d.Req.Question[0].Name, ".")
|
||||||
// other one.
|
|
||||||
name := strings.ToLower(d.Req.Question[0].Name)
|
|
||||||
d.Req.Question[0].Name = name
|
|
||||||
host := strings.TrimSuffix(name, ".")
|
|
||||||
if s.access.IsBlockedDomain(host) {
|
if s.access.IsBlockedDomain(host) {
|
||||||
log.Tracef("Domain %s is blocked by settings", host)
|
log.Tracef("domain %s is blocked by access settings", host)
|
||||||
|
|
||||||
return false, nil
|
return false, nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue