mirror of
https://github.com/netbirdio/netbird.git
synced 2026-04-16 07:16:38 +00:00
46 lines
1.3 KiB
Go
46 lines
1.3 KiB
Go
package dns
|
|
|
|
import (
|
|
"strconv"
|
|
"strings"
|
|
)
|
|
|
|
type iosHostManager struct {
|
|
dnsManager IosDnsManager
|
|
config hostDNSConfig
|
|
}
|
|
|
|
func newHostManager(dnsManager IosDnsManager) (hostManager, error) {
|
|
return &iosHostManager{
|
|
dnsManager: dnsManager,
|
|
}, nil
|
|
}
|
|
|
|
func (a iosHostManager) applyDNSConfig(config hostDNSConfig) error {
|
|
var configAsString []string
|
|
configAsString = append(configAsString, config.serverIP)
|
|
configAsString = append(configAsString, strconv.Itoa(config.serverPort))
|
|
configAsString = append(configAsString, strconv.FormatBool(config.routeAll))
|
|
var domainConfigAsString []string
|
|
for _, domain := range config.domains {
|
|
var domainAsString []string
|
|
domainAsString = append(domainAsString, strconv.FormatBool(domain.disabled))
|
|
domainAsString = append(domainAsString, domain.domain)
|
|
domainAsString = append(domainAsString, strconv.FormatBool(domain.matchOnly))
|
|
domainConfigAsString = append(domainConfigAsString, strings.Join(domainAsString, "|"))
|
|
}
|
|
domainConfig := strings.Join(domainConfigAsString, ";")
|
|
configAsString = append(configAsString, domainConfig)
|
|
outputString := strings.Join(configAsString, ",")
|
|
a.dnsManager.ApplyDns(outputString)
|
|
return nil
|
|
}
|
|
|
|
func (a iosHostManager) restoreHostDNS() error {
|
|
return nil
|
|
}
|
|
|
|
func (a iosHostManager) supportCustomPort() bool {
|
|
return false
|
|
}
|