You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Andrew Dunham
286c6ce27c
net/dns/resolver: race UDP and TCP queries ( #9544 )
...
Instead of just falling back to making a TCP query to an upstream DNS
server when the UDP query returns a truncated query, also start a TCP
query in parallel with the UDP query after a given race timeout. This
ensures that if the upstream DNS server does not reply over UDP (or if
the response packet is blocked, or there's an error), we can still make
queries if the server replies to TCP queries.
This also adds a new package, util/race, to contain the logic required for
racing two different functions and returning the first non-error answer.
Updates tailscale/corp#14809
Signed-off-by: Andrew Dunham <andrew@du.nham.ca>
Change-Id: I4311702016c1093b1beaa31b135da1def6d86316
3 years ago
..
publicdns
net/dns/publicdns: update Quad9 addresses and references
3 years ago
recursive
all: use Go 1.21 slices, maps instead of x/exp/{slices,maps}
3 years ago
resolvconffile
all: update to Go 1.20, use strings.CutPrefix/Suffix instead of our fork
3 years ago
resolver
net/dns/resolver: race UDP and TCP queries ( #9544 )
3 years ago
config.go
all: update copyright and license headers
3 years ago
debian_resolvconf.go
all: update copyright and license headers
3 years ago
direct.go
net/dns: overwrite /tmp/resolv.conf on gokrazy
3 years ago
direct_linux.go
all: update copyright and license headers
3 years ago
direct_notlinux.go
all: update copyright and license headers
3 years ago
direct_test.go
all: update copyright and license headers
3 years ago
flush_default.go
all: update copyright and license headers
3 years ago
flush_windows.go
all: update copyright and license headers
3 years ago
ini.go
all: update copyright and license headers
3 years ago
ini_test.go
all: update copyright and license headers
3 years ago
manager.go
net/dns: retry forwarder requests over TCP
3 years ago
manager_darwin.go
all: update copyright and license headers
3 years ago
manager_default.go
all: update copyright and license headers
3 years ago
manager_freebsd.go
all: update copyright and license headers
3 years ago
manager_linux.go
net/dns: detect when libnss_resolve is used
3 years ago
manager_linux_test.go
net/dns: detect when libnss_resolve is used
3 years ago
manager_openbsd.go
all: update copyright and license headers
3 years ago
manager_tcp_test.go
net/dns: retry forwarder requests over TCP
3 years ago
manager_test.go
net/dns: retry forwarder requests over TCP
3 years ago
manager_windows.go
net/dns: deal with Windows wsl.exe hangs
3 years ago
manager_windows_test.go
various: add golangci-lint, fix issues ( #7905 )
3 years ago
nm.go
net/{interfaces,netmon}: remove "interesting", EqualFiltered API
3 years ago
noop.go
all: update copyright and license headers
3 years ago
nrpt_windows.go
all: use set.Set consistently instead of map[T]struct{}
3 years ago
openresolv.go
all: update copyright and license headers
3 years ago
osconfig.go
wgengine/magicsock, controlclient, net/dns: reduce some logspam
3 years ago
osconfig_test.go
all: update copyright and license headers
3 years ago
resolvconf-workaround.sh
all: update copyright and license headers
3 years ago
resolvconf.go
all: update copyright and license headers
3 years ago
resolvconfpath_default.go
net/dns: overwrite /tmp/resolv.conf on gokrazy
3 years ago
resolvconfpath_gokrazy.go
net/dns: overwrite /tmp/resolv.conf on gokrazy
3 years ago
resolvd.go
all: update copyright and license headers
3 years ago
resolved.go
net/dns: don't send on closed channel in resolvedManager
3 years ago
utf.go
all: update copyright and license headers
3 years ago
utf_test.go
all: update copyright and license headers
3 years ago
wsl_windows.go
net/dns: deal with Windows wsl.exe hangs
3 years ago