net/dns: fix freebsd DNS manager selection.

Signed-off-by: David Anderson <danderson@tailscale.com>
This commit is contained in:
David Anderson
2021-04-14 15:34:59 -07:00
parent 5ea53891fe
commit 1f9b73a531
3 changed files with 46 additions and 38 deletions

View File

@@ -4,16 +4,25 @@
package dns
import "tailscale.com/types/logger"
import (
"fmt"
"io/ioutil"
"os"
func isResolvconfActive() bool {
// TODO(danderson): implement somewhere.
return false
}
"tailscale.com/types/logger"
)
func NewOSConfigurator(logf logger.Logf, _ string) (OSConfigurator, error) {
switch {
case isResolvconfActive():
bs, err := ioutil.ReadFile("/etc/resolv.conf")
if os.IsNotExist(err) {
return newDirectManager()
}
if err != nil {
return nil, fmt.Errorf("reading /etc/resolv.conf: %w", err)
}
switch resolvOwner(bs) {
case "resolvconf":
return newResolvconfManager(logf)
default:
return newDirectManager()