mirror of
https://github.com/tailscale/tailscale.git
synced 2024-11-26 11:35:35 +00:00
28 lines
700 B
Go
28 lines
700 B
Go
|
// Copyright (c) 2020 Tailscale Inc & AUTHORS All rights reserved.
|
||
|
// Use of this source code is governed by a BSD-style
|
||
|
// license that can be found in the LICENSE file.
|
||
|
|
||
|
package dns
|
||
|
|
||
|
func newManager(mconfig ManagerConfig) managerImpl {
|
||
|
switch {
|
||
|
// systemd-resolved should only activate per-domain.
|
||
|
case isResolvedActive() && mconfig.PerDomain:
|
||
|
if mconfig.Cleanup {
|
||
|
return newNoopManager(mconfig)
|
||
|
} else {
|
||
|
return newResolvedManager(mconfig)
|
||
|
}
|
||
|
case isNMActive():
|
||
|
if mconfig.Cleanup {
|
||
|
return newNoopManager(mconfig)
|
||
|
} else {
|
||
|
return newNMManager(mconfig)
|
||
|
}
|
||
|
case isResolvconfActive():
|
||
|
return newResolvconfManager(mconfig)
|
||
|
default:
|
||
|
return newDirectManager(mconfig)
|
||
|
}
|
||
|
}
|