aboutsummaryrefslogtreecommitdiff
path: root/middleware/kubernetes/subzone.go
diff options
context:
space:
mode:
Diffstat (limited to 'middleware/kubernetes/subzone.go')
-rw-r--r--middleware/kubernetes/subzone.go48
1 files changed, 0 insertions, 48 deletions
diff --git a/middleware/kubernetes/subzone.go b/middleware/kubernetes/subzone.go
deleted file mode 100644
index 6c4a79126..000000000
--- a/middleware/kubernetes/subzone.go
+++ /dev/null
@@ -1,48 +0,0 @@
-package kubernetes
-
-import (
- "log"
-
- "github.com/miekg/dns"
-)
-
-// NormalizeZoneList filters the zones argument to remove
-// array items that conflict with other items in zones.
-// For example, providing the following zones array:
-// [ "a.b.c", "b.c", "a", "e.d.f", "a.b" ]
-// Returns:
-// [ "a.b.c", "a", "e.d.f", "a.b" ]
-// Zones filted out:
-// - "b.c" because "a.b.c" and "b.c" share the common top
-// level "b.c". First listed zone wins if there is a conflict.
-//
-// Note: This may prove to be too restrictive in practice.
-// Need to find counter-example use-cases.
-func NormalizeZoneList(zones []string) []string {
- filteredZones := []string{}
-
- for _, z := range zones {
- zoneConflict, _ := subzoneConflict(filteredZones, z)
- if zoneConflict {
- log.Printf("[WARN] new zone '%v' from Corefile conflicts with existing zones: %v\n Ignoring zone '%v'\n", z, filteredZones, z)
- } else {
- filteredZones = append(filteredZones, z)
- }
- }
-
- return filteredZones
-}
-
-// subzoneConflict returns true if name is a child or parent zone of
-// any element in zones. If conflicts exist, return the conflicting zones.
-func subzoneConflict(zones []string, name string) (bool, []string) {
- conflicts := []string{}
-
- for _, z := range zones {
- if dns.IsSubDomain(z, name) || dns.IsSubDomain(name, z) {
- conflicts = append(conflicts, z)
- }
- }
-
- return (len(conflicts) != 0), conflicts
-}