Pull request 2389: AG-38975 Update proxy
Merge in DNS/adguard-home from AG-38975-upd-proxy to master Squashed commit of the following: commit 94fc1fb9bb1c004fea17d52f586af263b6918694 Author: Eugene Burkov <E.Burkov@AdGuard.COM> Date: Thu Apr 17 20:45:12 2025 +0300 home: fix typo commit b1cbf45dcc54c6d4dc7de86868c189114caf7cb1 Merge: c2c868b7d3521e8ed9Author: Eugene Burkov <E.Burkov@AdGuard.COM> Date: Thu Apr 17 20:44:14 2025 +0300 Merge branch 'master' into AG-38975-upd-proxy commit c2c868b7d938eee6e4e4a19d43b2ed734155c7da Author: Eugene Burkov <E.Burkov@AdGuard.COM> Date: Thu Apr 17 20:19:23 2025 +0300 all: upd to tag commit 1680a9d79f34bd42f0b64712b2e7e968890e7c6e Merge: df42dec3a4d258972dAuthor: Eugene Burkov <E.Burkov@AdGuard.COM> Date: Wed Apr 16 14:08:46 2025 +0300 Merge branch 'master' into AG-38975-upd-proxy commit df42dec3a302af0e6e301365a943763cd87d752d Author: Eugene Burkov <E.Burkov@AdGuard.COM> Date: Wed Apr 16 13:43:29 2025 +0300 all: add thanks commit f212d6a9ee3d614bd6db776204c65298f0359a87 Author: Eugene Burkov <E.Burkov@AdGuard.COM> Date: Mon Apr 14 17:57:33 2025 +0300 dnsforward: use bool commit 055072e29dee0673cf38b198476e252bdbade8d9 Author: Eugene Burkov <E.Burkov@AdGuard.COM> Date: Fri Apr 11 18:35:38 2025 +0300 stats: imp doc commit 6554101a73564b7786cd77d250344ba141c0cbb5 Author: Eugene Burkov <E.Burkov@AdGuard.COM> Date: Thu Apr 10 19:32:34 2025 +0300 all: log changes commit da8ecf17778be9481232222c8bb7682beea475c6 Author: Eugene Burkov <E.Burkov@AdGuard.COM> Date: Thu Apr 10 19:07:04 2025 +0300 all: upd proxy, add config
This commit is contained in:
@@ -274,6 +274,10 @@ type ServerConfig struct {
|
||||
|
||||
// ServePlainDNS defines if plain DNS is allowed for incoming requests.
|
||||
ServePlainDNS bool
|
||||
|
||||
// PendingRequestsEnabled defines if duplicate requests should be forwarded
|
||||
// to upstreams along with the original one.
|
||||
PendingRequestsEnabled bool
|
||||
}
|
||||
|
||||
// UpstreamMode is a enumeration of upstream mode representations. See
|
||||
@@ -317,6 +321,9 @@ func (s *Server) newProxyConfig() (conf *proxy.Config, err error) {
|
||||
UsePrivateRDNS: srvConf.UsePrivateRDNS,
|
||||
PrivateSubnets: s.privateNets,
|
||||
MessageConstructor: s,
|
||||
PendingRequests: &proxy.PendingRequestsConfig{
|
||||
Enabled: srvConf.PendingRequestsEnabled,
|
||||
},
|
||||
}
|
||||
|
||||
if srvConf.EDNSClientSubnet.UseCustom {
|
||||
|
||||
@@ -263,6 +263,16 @@ type dnsConfig struct {
|
||||
// HostsFileEnabled defines whether to use information from the system hosts
|
||||
// file to resolve queries.
|
||||
HostsFileEnabled bool `yaml:"hostsfile_enabled"`
|
||||
|
||||
// PendingRequests configures duplicate requests policy.
|
||||
PendingRequests *pendingRequests `yaml:"pending_requests"`
|
||||
}
|
||||
|
||||
// pendingRequests is a block with pending requests configuration.
|
||||
type pendingRequests struct {
|
||||
// Enabled controls if duplicate requests should be sent to the upstreams
|
||||
// along with the original one.
|
||||
Enabled bool `yaml:"enabled"`
|
||||
}
|
||||
|
||||
// tlsConfigSettings is the TLS configuration for DNS-over-TLS, DNS-over-QUIC,
|
||||
@@ -470,6 +480,9 @@ var config = &configuration{
|
||||
UsePrivateRDNS: true,
|
||||
ServePlainDNS: true,
|
||||
HostsFileEnabled: true,
|
||||
PendingRequests: &pendingRequests{
|
||||
Enabled: true,
|
||||
},
|
||||
},
|
||||
TLS: tlsConfigSettings{
|
||||
PortHTTPS: defaultPortHTTPS,
|
||||
|
||||
@@ -275,6 +275,7 @@ func newServerConfig(
|
||||
ServeHTTP3: dnsConf.ServeHTTP3,
|
||||
UseHTTP3Upstreams: dnsConf.UseHTTP3Upstreams,
|
||||
ServePlainDNS: dnsConf.ServePlainDNS,
|
||||
PendingRequestsEnabled: dnsConf.PendingRequests.Enabled,
|
||||
}
|
||||
|
||||
var initialAddresses []netip.Addr
|
||||
|
||||
@@ -64,7 +64,7 @@ type Entry struct {
|
||||
Domain string
|
||||
|
||||
// UpstreamStats contains the DNS query statistics for both the upstream and
|
||||
// fallback DNS servers.
|
||||
// fallback DNS servers. Don't modify items in the slice.
|
||||
UpstreamStats []*proxy.UpstreamStatistics
|
||||
|
||||
// Result is the result of processing the request.
|
||||
|
||||
Reference in New Issue
Block a user