parse.HostPortorFile: return error when 0 found (#3742)

* parse.HostPortorFile: return error when 0 found

Return an error when we haven't found any nameservers. This is the
alternative considered in #3735. It's also slighly less code to be
changing.

Replaces: #3741
Closes: #3741 #3735

Signed-off-by: Miek Gieben <miek@miek.nl>

* Add extra test case here as well

Signed-off-by: Miek Gieben <miek@miek.nl>
This commit is contained in:
Miek Gieben 2020-03-13 14:23:10 +01:00 committed by GitHub
parent 68ddba05da
commit c52a51fac8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 13 additions and 0 deletions

View file

@ -139,6 +139,8 @@ nameserver 10.10.255.253`), 0666); err != nil {
}{
// pass
{`forward . ` + resolv, false, "", []string{"10.10.255.252:53", "10.10.255.253:53"}},
// fail
{`forward . /dev/null`, true, "no nameservers", nil},
}
for i, test := range tests {
@ -168,6 +170,9 @@ nameserver 10.10.255.253`), 0666); err != nil {
}
}
}
if test.shouldErr {
continue
}
for _, p := range f.proxies {
p.health.Check(p) // this should almost always err, we don't care it shouldn't crash
}

View file

@ -69,6 +69,9 @@ func HostPortOrFile(s ...string) ([]string, error) {
}
servers = append(servers, h)
}
if len(servers) == 0 {
return servers, fmt.Errorf("no nameservers found")
}
return servers, nil
}

View file

@ -54,6 +54,11 @@ func TestHostPortOrFile(t *testing.T) {
"[fd01::1%ens3]:153",
false,
},
{
"8.9.1043",
"",
true,
},
}
err := ioutil.WriteFile("resolv.conf", []byte("nameserver 127.0.0.1\n"), 0600)