From 5f41d8eb1f74621ada05968dd6b0d24f9ae742df Mon Sep 17 00:00:00 2001 From: Miek Gieben Date: Mon, 17 May 2021 22:19:54 +0200 Subject: reverse zone: fix Normalize (#4621) Make normalize return multiple "hosts" (= reverse zones) when a non-octet boundary cidr is given. Added pkg/cidr package that holds the cidr calculation routines; felt they didn't really fit dnsutil. This change means the IPNet return parameter isn't needed, the hosts are all correct. The tests that tests this is also removed: TestSplitHostPortReverse The fallout was that zoneAddr _also_ doesn't need the IPNet member, that in turn make it visible that zoneAddr in address.go duplicated a bunch of stuff from register.go; removed/refactored that too. Created a plugin.OriginsFromArgsOrServerBlock to help plugins do the right things, by consuming ZONE arguments; this now expands reverse zones correctly. This is mostly mechanical. Remove the reverse test in plugin/kubernetes which is a copy-paste from a core test (which has since been fixed). Remove MustNormalize as it has no plugin users. This change is not backwards compatible to plugins that have a ZONE argument that they parse in the setup util. All in-tree plugins have been updated. Signed-off-by: Miek Gieben --- plugin/kubernetes/setup_reverse_test.go | 36 --------------------------------- 1 file changed, 36 deletions(-) delete mode 100644 plugin/kubernetes/setup_reverse_test.go (limited to 'plugin/kubernetes/setup_reverse_test.go') diff --git a/plugin/kubernetes/setup_reverse_test.go b/plugin/kubernetes/setup_reverse_test.go deleted file mode 100644 index e9b878319..000000000 --- a/plugin/kubernetes/setup_reverse_test.go +++ /dev/null @@ -1,36 +0,0 @@ -package kubernetes - -import ( - "testing" - - "github.com/coredns/caddy" -) - -func TestKubernetesParseReverseZone(t *testing.T) { - tests := []struct { - input string // Corefile data as string - expectedZones []string // expected count of defined zones. - }{ - {`kubernetes coredns.local 10.0.0.0/16`, []string{"coredns.local.", "0.10.in-addr.arpa."}}, - {`kubernetes coredns.local 10.0.0.0/17`, []string{"coredns.local.", "0.10.in-addr.arpa."}}, - {`kubernetes coredns.local fd00:77:30::0/110`, []string{"coredns.local.", "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.3.0.0.7.7.0.0.0.0.d.f.ip6.arpa."}}, - } - - for i, tc := range tests { - c := caddy.NewTestController("dns", tc.input) - k, err := kubernetesParse(c) - if err != nil { - t.Fatalf("Test %d: Expected no error, got %q", i, err) - } - - zl := len(k.Zones) - if zl != len(tc.expectedZones) { - t.Errorf("Test %d: Expected kubernetes to be initialized with %d zones, found %d zones", i, len(tc.expectedZones), zl) - } - for i, z := range tc.expectedZones { - if k.Zones[i] != z { - t.Errorf("Test %d: Expected zones to be %q, got %q", i, z, k.Zones[i]) - } - } - } -} -- cgit v1.2.3