Releases: AdguardTeam/dnsproxy
Releases · AdguardTeam/dnsproxy
Release v0.72.1
Fixed
- Race conditions on message ID in DNS-over-HTTPS and DNS-over-QUIC upstream implementations (#402).
Release v0.72.0
Added
proxy.Config
struct now contains the newslog.Logger
field which is used as the base logger for proxy service. If nil,slog.Default
is used.upstream.Options
with those you can configure the upstream properties now contain a newslog.Logger
field which is used as the base logger during configuration and parsing processes. If nil,slog.Default
is used.
Changed
proxy.Config.UpstreamMode
which determines the logic for upstreams has been changed, it is now of typeproxy.UpstreamMode
. If not specified theproxy.UpstreamModeLoadBalance
is used.proxy.CheckDisabledAAAARequest
has been deprecated, useproxy.RequestHandler
instead.fastip.NewFastestAddr
which initializes a new instance offastip.FastestAddr
is deprecated, usefastip.New
instead.upstream.NewDefaultHostsResolver
has been changed. Now it requires a non-nilslog.Logger
as an additional argument.
Removed
proxy.UModeLoadBalance
,proxy.UModeParallel
andproxy.UModeFastestAddr
have been removed. Use the new corresponding typeproxy.UpstreamMode
.- Deprecated
proxy.Init
has been removed. - Deprecated
upstream.LookupParallel
has been removed.
Release v0.71.2
Changed
- The
quic-go
dependency has been updated tov0.44.0
.
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.