tailscale/net/dns
Tom 24bdcbe5c7
net/dns, net/dns/resolver, wgengine: refactor DNS request path (#4364)
* net/dns, net/dns/resolver, wgengine: refactor DNS request path

Previously, method calls into the DNS manager/resolver types handled DNS
requests rather than DNS packets. This is fine for UDP as one packet
corresponds to one request or response, however will not suit an
implementation that supports DNS over TCP.

To support PRs implementing this in the future, wgengine delegates
all handling/construction of packets to the magic DNS endpoint, to
the DNS types themselves. Handling IP packets at this level enables
future support for both UDP and TCP.

Signed-off-by: Tom DNetto <tom@tailscale.com>
2022-04-08 12:17:31 -07:00
..
resolvconffile all: use strings.Cut even more 2022-03-19 13:02:38 -07:00
resolver net/dns, net/dns/resolver, wgengine: refactor DNS request path (#4364) 2022-04-08 12:17:31 -07:00
config.go ipnlocal, net/{dns,tsaddr,tstun}, wgengine: support MagicDNS on IPv6 2022-01-04 14:37:22 -08:00
debian_resolvconf.go all: gofmt with Go 1.17 2021-08-05 15:54:00 -07:00
direct_test.go net/dns: require space after nameserver/search parsing resolv.conf 2021-11-23 15:11:46 -08:00
direct.go net/dns: ignore permission errors on Synology DSM7 for now 2022-02-23 10:13:53 -08:00
flush_default.go wgengine: flush DNS cache after major link change. 2021-09-19 22:58:53 -07:00
flush_windows.go wgengine: flush DNS cache after major link change. 2021-09-19 22:58:53 -07:00
ini_test.go all: gofmt -w -s (simplify) tests 2021-12-15 08:43:41 -08:00
ini.go all: gofmt with Go 1.17 2021-08-05 15:54:00 -07:00
manager_default.go all: gofmt with Go 1.17 2021-08-05 15:54:00 -07:00
manager_freebsd.go net/dns: fall back to copy+delete/truncate if moving to/from /etc/resolv.conf fails. 2021-10-26 09:03:37 -07:00
manager_linux_test.go all: use any instead of interface{} 2022-03-17 11:35:09 -07:00
manager_linux.go net/dns: add health check for particular broken-ish Linux DNS config 2022-02-16 10:40:04 -08:00
manager_openbsd.go net/dns: teach OpenBSD's manager to talk to resolvd(8). (#2789) 2022-01-11 08:45:50 -08:00
manager_test.go net/tsdial: move more weirdo dialing into new tsdial package, plumb 2021-12-01 10:36:55 -08:00
manager_windows.go envknob: add new package for all the strconv.ParseBool(os.Getenv(..)) 2022-01-24 11:51:23 -08:00
manager.go net/dns, net/dns/resolver, wgengine: refactor DNS request path (#4364) 2022-04-08 12:17:31 -07:00
nm.go all: use any instead of interface{} 2022-03-17 11:35:09 -07:00
noop.go net/dns: return error from NewOSManager, use it to initialize NM. 2021-04-12 15:51:37 -07:00
openresolv.go all: gofmt with Go 1.17 2021-08-05 15:54:00 -07:00
osconfig.go net/dns: make debian_resolvconf correctly clear DNS configs. 2021-04-20 15:51:14 -07:00
registry_windows.go wgengine/router/dns: move to net/dns. 2021-03-25 16:25:30 -07:00
resolvconf-workaround.sh net/dns: also include 'tail' and 'base' files when fixing up resolv.conf. 2021-04-10 23:01:11 -07:00
resolvconf.go net/dns: exhaustively test DNS selection paths for linux. 2021-09-04 23:40:48 -07:00
resolvd.go net/dns/resolvconffile: unify three /etc/resolv.conf parsers into new package 2022-02-14 20:55:57 -08:00
resolved.go all: use any instead of interface{} 2022-03-17 11:35:09 -07:00
utf_test.go net/dns: detect and decode UTF-16 from wsl.exe earlier. 2021-11-30 13:10:18 -08:00
utf.go net/dns: detect and decode UTF-16 from wsl.exe earlier. 2021-11-30 13:10:18 -08:00
wsl_windows.go net/dns: fix checking for wrapped error when attempting to read wsl.conf for Windows WSL2 2021-11-30 15:36:39 -07:00