aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Manuel Alejandro de Brito Fontes <aledbf@gmail.com> 2024-04-26 13:12:25 -0400
committerGravatar GitHub <noreply@github.com> 2024-04-26 13:12:25 -0400
commit5b6d8e356cea15ef35b47db1a5a605886494b80e (patch)
treebeca6f7c6b815ebc8a281e5535a40b129325073d
parentc15fe973ee7caa7ef0bb89725f933d23bd7e4c6e (diff)
downloadcoredns-5b6d8e356cea15ef35b47db1a5a605886494b80e.tar.gz
coredns-5b6d8e356cea15ef35b47db1a5a605886494b80e.tar.zst
coredns-5b6d8e356cea15ef35b47db1a5a605886494b80e.zip
[plugin/forward] Strip local zone from IPV6 nameservers (#6635)
Signed-off-by: Alejandro de Brito Fontes <aledbf@gmail.com>
-rw-r--r--plugin/forward/setup_test.go9
-rw-r--r--plugin/pkg/parse/host.go2
2 files changed, 10 insertions, 1 deletions
diff --git a/plugin/forward/setup_test.go b/plugin/forward/setup_test.go
index cf046b486..95f642f68 100644
--- a/plugin/forward/setup_test.go
+++ b/plugin/forward/setup_test.go
@@ -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 {
diff --git a/plugin/pkg/parse/host.go b/plugin/pkg/parse/host.go
index f90e4fc77..78f7cd93b 100644
--- a/plugin/pkg/parse/host.go
+++ b/plugin/pkg/parse/host.go
@@ -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
}