aboutsummaryrefslogtreecommitdiff
path: root/plugin/backend.go
diff options
context:
space:
mode:
Diffstat (limited to 'plugin/backend.go')
-rw-r--r--plugin/backend.go9
1 files changed, 9 insertions, 0 deletions
diff --git a/plugin/backend.go b/plugin/backend.go
index 449faf37c..32443a955 100644
--- a/plugin/backend.go
+++ b/plugin/backend.go
@@ -29,11 +29,20 @@ type ServiceBackend interface {
// IsNameError return true if err indicated a record not found condition
IsNameError(err error) bool
+ Transferer
+}
+
+// Transferer defines an interface for backends that provide AXFR of all records.
+type Transferer interface {
// Serial returns a SOA serial number to construct a SOA record.
Serial(state request.Request) uint32
// MinTTL returns the minimum TTL to be used in the SOA record.
MinTTL(state request.Request) uint32
+
+ // Transfer handles a zone transfer it writes to the client just
+ // like any other handler.
+ Transfer(ctx context.Context, state request.Request) (int, error)
}
// Options are extra options that can be specified for a lookup.