mirror of
https://github.com/Control-D-Inc/ctrld.git
synced 2026-02-03 22:18:39 +00:00
92 lines
1.8 KiB
Go
92 lines
1.8 KiB
Go
package testhelper
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/Control-D-Inc/ctrld"
|
|
"github.com/spf13/viper"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func SampleConfig(t *testing.T) *ctrld.Config {
|
|
v := viper.NewWithOptions(viper.KeyDelimiter("::"))
|
|
ctrld.InitConfig(v, "test_load_config")
|
|
v.SetConfigType("toml")
|
|
require.NoError(t, v.ReadConfig(strings.NewReader(sampleConfigContent)))
|
|
var cfg ctrld.Config
|
|
require.NoError(t, v.Unmarshal(&cfg))
|
|
return &cfg
|
|
}
|
|
|
|
func SampleConfigStr(t *testing.T) string {
|
|
return sampleConfigContent
|
|
}
|
|
|
|
var sampleConfigContent = `
|
|
[service]
|
|
log_level = "info"
|
|
log_path = "/path/to/log.log"
|
|
dns_watchdog_enabled = false
|
|
dns_watchdog_interval = "20s"
|
|
|
|
[network.0]
|
|
name = "Home Wifi"
|
|
cidrs = ["192.168.0.0/24"]
|
|
|
|
[network.1]
|
|
name = "Kids Wifi"
|
|
cidrs = ["192.168.1.0/24"]
|
|
|
|
[upstream.0]
|
|
name = "Control D - Standard Devices"
|
|
type = "doh"
|
|
endpoint = "https://dns.controld.com/12345abcd/main-device"
|
|
timeout = 5
|
|
|
|
[upstream.1]
|
|
name = "Control D - Kids Devices"
|
|
type = "dot"
|
|
endpoint = "12345abcd-kids-devices.dns.controld.com"
|
|
timeout = 5
|
|
|
|
[upstream.2]
|
|
name = "Google"
|
|
type = "legacy"
|
|
endpoint = "8.8.8.8"
|
|
timeout = 5
|
|
|
|
[upstream.3]
|
|
name = "DOH with client info"
|
|
type = "doh"
|
|
endpoint = "https://dns.controld.com/client_info_upstream/main-device"
|
|
timeout = 5
|
|
send_client_info = false
|
|
|
|
[listener.0]
|
|
ip = "127.0.0.1"
|
|
port = 53
|
|
|
|
[listener.1]
|
|
ip = "10.10.42.69"
|
|
port = 1337
|
|
|
|
[listener.0.policy]
|
|
name = "My Policy"
|
|
failover_rcodes = ["NXDOMAIN", "SERVFAIL"]
|
|
networks = [
|
|
{"network.0" = ["upstream.1", "upstream.0"]},
|
|
{"network.1" = ["upstream.0"]},
|
|
{"network.2" = ["upstream.1"]},
|
|
]
|
|
|
|
rules = [
|
|
{"*.ru" = ["upstream.1"]},
|
|
{"*.local.host" = ["upstream.2", "upstream.0"]},
|
|
]
|
|
macs = [
|
|
{"14:45:A0:67:83:0A" = ["upstream.2"]},
|
|
{"14:54:4a:8e:08:2d" = ["upstream.2"]},
|
|
]
|
|
`
|