mirror of
https://github.com/tailscale/tailscale.git
synced 2025-08-15 07:27:30 +00:00
net/dns: detect when resolvconf points to systemd-resolved.
There are /etc/resolv.conf files out there where resolvconf wrote the file but pointed to systemd-resolved as the nameserver. We're better off handling those as systemd-resolved. > # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) > # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN > # 127.0.0.53 is the systemd-resolved stub resolver. > # run "systemd-resolve --status" to see details about the actual nameservers. Fixes https://github.com/tailscale/tailscale/issues/3026 Signed-off-by: Denton Gentry <dgentry@tailscale.com>
This commit is contained in:

committed by
Denton Gentry

parent
a320d70614
commit
139a6c4c9c
@@ -142,6 +142,36 @@ func TestLinuxDNSMode(t *testing.T) {
|
||||
wantLog: "dns: [rc=resolved nm=no ret=systemd-resolved]",
|
||||
want: "systemd-resolved",
|
||||
},
|
||||
{
|
||||
// More than one user has had resolvconf write a config that points to
|
||||
// systemd-resolved. We're better off using systemd-resolved.
|
||||
// regression test for https://github.com/tailscale/tailscale/issues/3026
|
||||
name: "allegedly_resolvconf_but_actually_systemd-resolved",
|
||||
env: env(resolvDotConf(
|
||||
"# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)",
|
||||
"# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN",
|
||||
"# 127.0.0.53 is the systemd-resolved stub resolver.",
|
||||
"# run \"systemd-resolve --status\" to see details about the actual nameservers.",
|
||||
"nameserver 127.0.0.53"),
|
||||
resolvedRunning()),
|
||||
wantLog: "dns: [rc=resolved nm=no ret=systemd-resolved]",
|
||||
want: "systemd-resolved",
|
||||
},
|
||||
{
|
||||
// More than one user has had resolvconf write a config that points to
|
||||
// systemd-resolved. We're better off using systemd-resolved.
|
||||
// ...but what if systemd-resolved isn't running?
|
||||
// regression test for https://github.com/tailscale/tailscale/issues/3026
|
||||
name: "allegedly_resolvconf_but_actually_systemd-resolved_but_not_really",
|
||||
env: env(resolvDotConf(
|
||||
"# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)",
|
||||
"# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN",
|
||||
"# 127.0.0.53 is the systemd-resolved stub resolver.",
|
||||
"# run \"systemd-resolve --status\" to see details about the actual nameservers.",
|
||||
"nameserver 127.0.0.53")),
|
||||
wantLog: "dns: [rc=resolved resolved=no ret=direct]",
|
||||
want: "direct",
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
|
Reference in New Issue
Block a user