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
David Anderson a320d70614 net/dns: fall back to copy+delete/truncate if moving to/from /etc/resolv.conf fails.
In some containers, /etc/resolv.conf is a bind-mount from outside the container.
This prevents renaming to or from /etc/resolv.conf, because it's on a different
filesystem from linux's perspective. It also prevents removing /etc/resolv.conf,
because doing so would break the bind-mount.

If we find ourselves within this environment, fall back to using copy+delete when
renaming to /etc/resolv.conf, and copy+truncate when renaming from /etc/resolv.conf.

Fixes #3000

Co-authored-by: Denton Gentry <dgentry@tailscale.com>
Signed-off-by: David Anderson <danderson@tailscale.com>
3 years ago
..
resolver net/dns/resolver: set maxDoHInFlight to 1000 on iOS 15+. 3 years ago
config.go net/dns: replace resolver IPs with type for DoH 3 years ago
debian_resolvconf.go all: gofmt with Go 1.17 3 years ago
direct.go net/dns: fall back to copy+delete/truncate if moving to/from /etc/resolv.conf fails. 3 years ago
direct_test.go net/dns: fall back to copy+delete/truncate if moving to/from /etc/resolv.conf fails. 3 years ago
flush_default.go wgengine: flush DNS cache after major link change. 3 years ago
flush_windows.go wgengine: flush DNS cache after major link change. 3 years ago
ini.go all: gofmt with Go 1.17 3 years ago
ini_test.go all: gofmt with Go 1.17 3 years ago
manager.go wgengine: flush DNS cache after major link change. 3 years ago
manager_default.go all: gofmt with Go 1.17 3 years ago
manager_freebsd.go net/dns: fall back to copy+delete/truncate if moving to/from /etc/resolv.conf fails. 3 years ago
manager_linux.go net/dns: fall back to copy+delete/truncate if moving to/from /etc/resolv.conf fails. 3 years ago
manager_linux_test.go net/dns: fall back to copy+delete/truncate if moving to/from /etc/resolv.conf fails. 3 years ago
manager_openbsd.go net/dns: fall back to copy+delete/truncate if moving to/from /etc/resolv.conf fails. 3 years ago
manager_test.go net/dns: replace resolver IPs with type for DoH 3 years ago
manager_windows.go net/dns: correct log message. 3 years ago
nm.go all: gofmt with Go 1.17 3 years ago
noop.go net/dns: return error from NewOSManager, use it to initialize NM. 4 years ago
openresolv.go all: gofmt with Go 1.17 3 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: exhaustively test DNS selection paths for linux. 3 years ago
resolved.go net/dns: fall back to copy+delete/truncate if moving to/from /etc/resolv.conf fails. 3 years ago
wsl_windows.go net/dns: fall back to copy+delete/truncate if moving to/from /etc/resolv.conf fails. 3 years ago