diff --git a/net/dns/resolvconf.go b/net/dns/resolvconf.go index 0304375ee..ca584ffcc 100644 --- a/net/dns/resolvconf.go +++ b/net/dns/resolvconf.go @@ -6,6 +6,7 @@ package dns import ( + "bytes" "os/exec" ) @@ -13,13 +14,17 @@ func resolvconfStyle() string { if _, err := exec.LookPath("resolvconf"); err != nil { return "" } - if _, err := exec.Command("resolvconf", "--version").CombinedOutput(); err != nil { + output, err := exec.Command("resolvconf", "--version").CombinedOutput() + if err != nil { // Debian resolvconf doesn't understand --version, and // exits with a specific error code. if exitErr, ok := err.(*exec.ExitError); ok && exitErr.ExitCode() == 99 { return "debian" } } + if bytes.HasPrefix(output, []byte("Debian resolvconf")) { + return "debian" + } // Treat everything else as openresolv, by far the more popular implementation. return "openresolv" }