cherry-pick: 4120 service domain validation
Merge in DNS/adguard-home from 4120-fix-services to master Closes #4120. Squashed commit of the following: commit ca2e5faf64f567cc6647a300181712236158e69d Author: Eugene Burkov <E.Burkov@AdGuard.COM> Date: Tue Jan 18 14:14:54 2022 +0300 dnsforward: imp docs commit 9ed5f536e691dcdee5b7c94e161c738d31ff8588 Author: Eugene Burkov <E.Burkov@AdGuard.COM> Date: Tue Jan 18 13:50:33 2022 +0300 dnsforward: fix reverse domain validation
This commit is contained in:
committed by
Ainar Garipov
parent
1f8b340b8f
commit
f41332fe6b
@@ -352,9 +352,22 @@ func (s *Server) processRestrictLocal(ctx *dnsContext) (rc resultCode) {
|
||||
|
||||
ip, err := netutil.IPFromReversedAddr(q.Name)
|
||||
if err != nil {
|
||||
log.Debug("dns: reversed addr: %s", err)
|
||||
log.Debug("dns: parsing reversed addr: %s", err)
|
||||
|
||||
return resultCodeError
|
||||
// DNS-Based Service Discovery uses PTR records having not an ARPA
|
||||
// format of the domain name in question. Those shouldn't be
|
||||
// invalidated. See http://www.dns-sd.org/ServerStaticSetup.html and
|
||||
// RFC 2782.
|
||||
name := strings.TrimSuffix(q.Name, ".")
|
||||
if err = netutil.ValidateSRVDomainName(name); err != nil {
|
||||
log.Debug("dns: validating service domain: %s", err)
|
||||
|
||||
return resultCodeError
|
||||
}
|
||||
|
||||
log.Debug("dns: request is for a service domain")
|
||||
|
||||
return resultCodeSuccess
|
||||
}
|
||||
|
||||
// Restrict an access to local addresses for external clients. We also
|
||||
|
||||
Reference in New Issue
Block a user