Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // ErrNotAuthoritative is returned by Transfer() when the plugin is not authoritative for the zone ErrNotAuthoritative = errors.New("not authoritative for zone") )
Functions ¶
This section is empty.
Types ¶
type Transfer ¶
type Transfer struct {
Transferers []Transferer // the list of plugins that implement Transferer
Next plugin.Handler // the next plugin in the chain
// contains filtered or unexported fields
}
Transfer is a plugin that handles zone transfers.
type Transferer ¶
type Transferer interface {
// Transfer returns a channel to which it writes responses to the transfer request.
// If the plugin is not authoritative for the zone, it should immediately return the
// Transfer.ErrNotAuthoritative error.
//
// If serial is 0, handle as an AXFR request. Transfer should send all records
// in the zone to the channel. The SOA should be written to the channel first, followed
// by all other records, including all NS + glue records.
//
// If serial is not 0, handle as an IXFR request. If the serial is equal to or greater (newer) than
// the current serial for the zone, send a single SOA record to the channel.
// If the serial is less (older) than the current serial for the zone, perform an AXFR fallback
// by proceeding as if an AXFR was requested (as above).
Transfer(zone string, serial uint32) (<-chan []dns.RR, error)
}
Transferer may be implemented by plugins to enable zone transfers
Click to show internal directories.
Click to hide internal directories.