Releases: AdguardTeam/dnsproxy
Releases · AdguardTeam/dnsproxy
Release v0.71.1
Fixed
- Ignored wildcard specifications for top-level domains.
Release v0.71.0
Fixed
- The
quic-go
dependency has been updated due to issues with QUIC and HTTP/3 upstreams on older Linux kernel versions. - Domain specifications for top-level domains now considered when routing the requests for unqualified names.
Release v0.70.0
Changed
SOA
andNS
requests containing ARPA domains implying private IP addresses are now treated as private requests, as was previously the case only forPTR
requests.proxy.DNSContext.RequestedPrivateRDNS
is now set forSOA
andNS
requests, as was previously the case only forPTR
requests.
Release v0.69.2
Fixed
- Error-prone
proxy.BeforeRequestError
API. See documentation.
Tip
Consider wrapping each returned error with proxy.BeforeRequestError
with a SERVFAIL
response.
Release v0.69.1
Fixed
- Validations in
proxy.New
performed with the default values, not the ones from configuration.
Release v0.69.0
Added
- New
proxy.BeforeRequestError
type for the errors containing a custom DNS response. Seeproxy.BeforeRequestHandler
for usage.
Changed
- The
quic-go
dependency has been updated tov0.42.0
. proxy.BeforeRequestHandler
is now an interface instead of a callback, and its the only method also differs in signature.
Fixed
- Unspecified IP addresses no more checked when using
proxy.UModeFastestAddr
.
Release v0.68.0
Added
- The field
proxy.Config.PrivateSubnets
used to determine if the address of a client or the address requested via PTR is considered private. Thenetutil.IsLocallyServed
is used by default. - The field
proxy.Config.UsePrivateRDNS
controls if the requests considered private should be resolved viaproxy.Config.PrivateRDNSUpstreamConfig
. Such requests answered withNXDOMAIN
otherwise. - The field
proxy.DNSContext.IsPrivateClient
which determines if the client's address is considered private. - The field
proxy.DNSContext.RequestedPrivateRDNS
containing the prefix parsed from a requested ARPA domain, if the request itself is PTR for a private address and came from a private client. - The
proxy.ValidatePrivateConfig
function to validate if anproxy.UpstreamConfig
may be used for private RDNS.
Changed
- PTR requests for domains containing DNS64 prefixes are now answered with
NXDOMAIN
ifproxy.Config.UseDNS64
is set to true, butproxy.Config.UsePrivateRDNS
is not. - Fallback servers aren't used for the aforementioned requests, as well as for all private RDNS requests.
- All the private RDNS requests coming from external (non-private) client are now answered with
NXDOMAIN
beforeproxy.RequestHandler
. proxy.New
now requiresproxy.Config.PrivateRDNSUpstreamConfig
to be valid as perproxy.ValidatePrivateConfig
ifproxy.Config.UsePrivateRDNS
is set to true.
Release v0.67.0
Added
- The new
proxy.Config.MessageConstructor
field of the newproxy.MessageConstructor
type that is used to build DNS messages. The default legacy implementation is used in case ofnil
.
Changed
- The
proxy.UpstreamConfig.SubdomainExclusions
field type is now*container.MapSet
.
Warning
Previously released v0.66.1
has been removed as it contains breaking changes.
Release v0.66.0
Added
- The new
proxy.New
constructor forproxy.Proxy
structure.
Changed
- The
proxy.Proxy.Start
method now accepts a context. - The
proxy.Proxy.Stop
method has been renamed toproxy.Proxy.Shutdown
and now accepts a context.
Deprecated
- The
proxy.Proxy.Init
method. Useproxy.New
instead.
Release v0.65.2
Fixed
- The
upstream.CachingResolver
caching algorithm, which removed certain resource records within an RR set (AdguardTeam/AdGuardHome#6723).