You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tailscale/net/dns
Brad Fitzpatrick 53a2f63658 net/dns/resolver: race well-known resolvers less aggressively
Instead of blasting away at all upstream resolvers at the same time,
make a timing plan upon reconfiguration and have each upstream have an
associated start delay, depending on the overall forwarding config.

So now if you have two or four upstream Google or Cloudflare DNS
servers (e.g. two IPv4 and two IPv6), we now usually only send a
query, not four.

This is especially nice on iOS where we start fewer DoH queries and
thus fewer HTTP/1 requests (because we still disable HTTP/2 on iOS),
fewer sockets, fewer goroutines, and fewer associated HTTP buffers,
etc, saving overall memory burstiness.

Fixes #2436
Updates tailscale/corp#2250
Updates tailscale/corp#2238

Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
3 years ago
..
resolver net/dns/resolver: race well-known resolvers less aggressively 3 years ago
config.go net/dns{,/resolver}: quiet DNS output logging 3 years ago
debian_resolvconf.go net/dns: add GOOS build tags 4 years ago
direct.go net/dns: set WSL /etc/resolv.conf 3 years ago
direct_test.go net/dns: factor directManager out over an FS interface 3 years ago
flush_windows.go Move DNS flush logic to net/dns. 4 years ago
ini.go net/dns: don't build init*.go on non-windows 3 years ago
ini_test.go net/dns: don't build init*.go on non-windows 3 years ago
manager.go net/dns{,/resolver}: quiet DNS output logging 3 years ago
manager_default.go net/dns: return error from NewOSManager, use it to initialize NM. 4 years ago
manager_freebsd.go net/dns: factor directManager out over an FS interface 3 years ago
manager_linux.go net/dns: factor directManager out over an FS interface 3 years ago
manager_openbsd.go net/dns: factor directManager out over an FS interface 3 years ago
manager_test.go net/dns{,/resolver}: refactor DNS forwarder, send out of right link on macOS/iOS 3 years ago
manager_windows.go net/dns: do not run wsl.exe as LocalSystem 3 years ago
nm.go staticcheck.conf: turn off noisy lint errors 3 years ago
noop.go net/dns: return error from NewOSManager, use it to initialize NM. 4 years ago
openresolv.go net/dns: add GOOS build tags 4 years ago
osconfig.go net/dns: make debian_resolvconf correctly clear DNS configs. 4 years ago
registry_windows.go wgengine/router/dns: move to net/dns. 4 years ago
resolvconf-workaround.sh net/dns: also include 'tail' and 'base' files when fixing up resolv.conf. 4 years ago
resolvconf.go net/dns: add GOOS build tags 4 years ago
resolved.go net/dns: factor directManager out over an FS interface 3 years ago
wsl_windows.go net/dns: do not run wsl.exe as LocalSystem 3 years ago