aboutsummaryrefslogtreecommitdiff
path: root/middleware/file/closest.go
diff options
context:
space:
mode:
Diffstat (limited to 'middleware/file/closest.go')
-rw-r--r--middleware/file/closest.go16
1 files changed, 16 insertions, 0 deletions
diff --git a/middleware/file/closest.go b/middleware/file/closest.go
new file mode 100644
index 000000000..daee27314
--- /dev/null
+++ b/middleware/file/closest.go
@@ -0,0 +1,16 @@
+package file
+
+import "github.com/miekg/dns"
+
+// ClosestEncloser returns the closest encloser for rr.
+func (z *Zone) ClosestEncloser(rr dns.RR) string {
+ elem := z.Tree.Prev(rr)
+ if elem == nil {
+ // SOA?
+ return ""
+ }
+ for _, r := range elem.All() {
+ return r.Header().Name
+ }
+ return ""
+}