[plugin/forward] Strip local zone from IPV6 nameservers (#6635)

Signed-off-by: Alejandro de Brito Fontes <aledbf@gmail.com>
This commit is contained in:
Manuel Alejandro de Brito Fontes 2024-04-26 13:12:25 -04:00 committed by GitHub
parent c15fe973ee
commit 5b6d8e356c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 10 additions and 1 deletions

View file

@ -143,6 +143,13 @@ nameserver 10.10.255.253`), 0666); err != nil {
}
defer os.Remove(resolv)
const resolvIPV6 = "resolv-ipv6.conf"
if err := os.WriteFile(resolvIPV6,
[]byte(`nameserver 0388:d254:7aec:6892:9f7f:e93b:5806:1b0f%en0`), 0666); err != nil {
t.Fatalf("Failed to write %v file: %s", resolvIPV6, err)
}
defer os.Remove(resolvIPV6)
tests := []struct {
input string
shouldErr bool
@ -153,6 +160,8 @@ nameserver 10.10.255.253`), 0666); err != nil {
{`forward . ` + resolv, false, "", []string{"10.10.255.252:53", "10.10.255.253:53"}},
// fail
{`forward . /dev/null`, true, "no nameservers", nil},
// IPV6 with local zone
{`forward . ` + resolvIPV6, false, "", []string{"[0388:d254:7aec:6892:9f7f:e93b:5806:1b0f]:53"}},
}
for i, test := range tests {

View file

@ -99,7 +99,7 @@ func tryFile(s string) ([]string, error) {
servers := []string{}
for _, s := range c.Servers {
servers = append(servers, net.JoinHostPort(s, c.Port))
servers = append(servers, net.JoinHostPort(stripZone(s), c.Port))
}
return servers, nil
}