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
|
||||
|
||||
- Domain name case in responses ([#3194]).
|
||||
- Custom upstreams selection for clients with client IDs in DNS-over-TLS and
|
||||
DNS-over-HTTP ([#3186]).
|
||||
- Incorrect client-based filtering applying logic ([#2875]).
|
||||
@ -48,6 +49,7 @@ released by then.
|
||||
[#3184]: https://github.com/AdguardTeam/AdGuardHome/issues/3184
|
||||
[#3185]: https://github.com/AdguardTeam/AdGuardHome/issues/3185
|
||||
[#3186]: https://github.com/AdguardTeam/AdGuardHome/issues/3186
|
||||
[#3194]: https://github.com/AdguardTeam/AdGuardHome/issues/3194
|
||||
[#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
|
||||
func (a *accessCtx) IsBlockedDomain(host string) bool {
|
||||
func (a *accessCtx) IsBlockedDomain(host string) (ok bool) {
|
||||
a.lock.Lock()
|
||||
_, ok := a.blockedHostsEngine.Match(host)
|
||||
a.lock.Unlock()
|
||||
defer a.lock.Unlock()
|
||||
|
||||
_, ok = a.blockedHostsEngine.Match(strings.ToLower(host))
|
||||
|
||||
return ok
|
||||
}
|
||||
|
||||
|
@ -20,13 +20,10 @@ func (s *Server) beforeRequestHandler(_ *proxy.Proxy, d *proxy.DNSContext) (bool
|
||||
}
|
||||
|
||||
if len(d.Req.Question) == 1 {
|
||||
// It's lowercased here since this handler is called before any
|
||||
// other one.
|
||||
name := strings.ToLower(d.Req.Question[0].Name)
|
||||
d.Req.Question[0].Name = name
|
||||
host := strings.TrimSuffix(name, ".")
|
||||
host := strings.TrimSuffix(d.Req.Question[0].Name, ".")
|
||||
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
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user