@ -83,13 +83,11 @@ func TestManager(t *testing.T) {
Hosts : hosts (
"dave.ts.com." , "1.2.3.4" ,
"bradfitz.ts.com." , "2.3.4.5" ) ,
AuthoritativeSuffixes : fqdns ( "ts.com" ) ,
} ,
rs : resolver . Config {
Hosts : hosts (
"dave.ts.com." , "1.2.3.4" ,
"bradfitz.ts.com." , "2.3.4.5" ) ,
LocalDomains : fqdns ( "ts.com" ) ,
} ,
} ,
{
@ -120,11 +118,10 @@ func TestManager(t *testing.T) {
in : Config {
DefaultResolvers : mustIPPs ( "1.1.1.1:53" , "9.9.9.9:53" ) ,
SearchDomains : fqdns ( "tailscale.com" , "universe.tf" ) ,
Routes : upstreams ( "ts.com" , " 100.100.100.100:53 ") ,
Routes : upstreams ( "ts.com" , " ") ,
Hosts : hosts (
"dave.ts.com." , "1.2.3.4" ,
"bradfitz.ts.com." , "2.3.4.5" ) ,
AuthoritativeSuffixes : fqdns ( "ts.com" ) ,
} ,
os : OSConfig {
Nameservers : mustIPs ( "100.100.100.100" ) ,
@ -143,11 +140,10 @@ func TestManager(t *testing.T) {
in : Config {
DefaultResolvers : mustIPPs ( "1.1.1.1:53" , "9.9.9.9:53" ) ,
SearchDomains : fqdns ( "tailscale.com" , "universe.tf" ) ,
Routes : upstreams ( "ts.com" , " 100.100.100.100:53 ") ,
Routes : upstreams ( "ts.com" , " ") ,
Hosts : hosts (
"dave.ts.com." , "1.2.3.4" ,
"bradfitz.ts.com." , "2.3.4.5" ) ,
AuthoritativeSuffixes : fqdns ( "ts.com" ) ,
} ,
split : true ,
os : OSConfig {
@ -279,9 +275,8 @@ func TestManager(t *testing.T) {
Hosts : hosts (
"dave.ts.com." , "1.2.3.4" ,
"bradfitz.ts.com." , "2.3.4.5" ) ,
Routes : upstreams ( "ts.com" , "100.100.100.100:53" ) ,
AuthoritativeSuffixes : fqdns ( "ts.com" ) ,
SearchDomains : fqdns ( "tailscale.com" , "universe.tf" ) ,
Routes : upstreams ( "ts.com" , "" ) ,
SearchDomains : fqdns ( "tailscale.com" , "universe.tf" ) ,
} ,
bs : OSConfig {
Nameservers : mustIPs ( "8.8.8.8" ) ,
@ -305,9 +300,8 @@ func TestManager(t *testing.T) {
Hosts : hosts (
"dave.ts.com." , "1.2.3.4" ,
"bradfitz.ts.com." , "2.3.4.5" ) ,
Routes : upstreams ( "ts.com" , "100.100.100.100:53" ) ,
AuthoritativeSuffixes : fqdns ( "ts.com" ) ,
SearchDomains : fqdns ( "tailscale.com" , "universe.tf" ) ,
Routes : upstreams ( "ts.com" , "" ) ,
SearchDomains : fqdns ( "tailscale.com" , "universe.tf" ) ,
} ,
split : true ,
os : OSConfig {
@ -325,12 +319,11 @@ func TestManager(t *testing.T) {
{
name : "routes-magic" ,
in : Config {
Routes : upstreams ( "corp.com" , "2.2.2.2:53" ),
Routes : upstreams ( "corp.com" , "2.2.2.2:53" , "ts.com" , "" ),
Hosts : hosts (
"dave.ts.com." , "1.2.3.4" ,
"bradfitz.ts.com." , "2.3.4.5" ) ,
AuthoritativeSuffixes : fqdns ( "ts.com" ) ,
SearchDomains : fqdns ( "tailscale.com" , "universe.tf" ) ,
SearchDomains : fqdns ( "tailscale.com" , "universe.tf" ) ,
} ,
bs : OSConfig {
Nameservers : mustIPs ( "8.8.8.8" ) ,
@ -355,12 +348,11 @@ func TestManager(t *testing.T) {
in : Config {
Routes : upstreams (
"corp.com" , "2.2.2.2:53" ,
"ts.com" , " 100.100.100.100:53 ") ,
"ts.com" , " ") ,
Hosts : hosts (
"dave.ts.com." , "1.2.3.4" ,
"bradfitz.ts.com." , "2.3.4.5" ) ,
AuthoritativeSuffixes : fqdns ( "ts.com" ) ,
SearchDomains : fqdns ( "tailscale.com" , "universe.tf" ) ,
SearchDomains : fqdns ( "tailscale.com" , "universe.tf" ) ,
} ,
split : true ,
os : OSConfig {
@ -451,7 +443,12 @@ func upstreams(strs ...string) (ret map[dnsname.FQDN][]netaddr.IPPort) {
var key dnsname . FQDN
ret = map [ dnsname . FQDN ] [ ] netaddr . IPPort { }
for _ , s := range strs {
if ipp , err := netaddr . ParseIPPort ( s ) ; err == nil {
if s == "" {
if key == "" {
panic ( "IPPort provided before suffix" )
}
ret [ key ] = nil
} else if ipp , err := netaddr . ParseIPPort ( s ) ; err == nil {
if key == "" {
panic ( "IPPort provided before suffix" )
}