DNS.Zone.Transfer (DNS v0.4.1)
View SourceZone transfer functionality for DNS zones (AXFR/IXFR).
Provides full zone transfer (AXFR) and incremental zone transfer (IXFR) capabilities according to RFC 1995 and RFC 5936.
Summary
Functions
Apply transferred zone data to local zone store.
Perform full zone transfer (AXFR) for a zone.
Create zone transfer request.
Create zone transfer response message.
Perform incremental zone transfer (IXFR) for a zone.
Validate if zone transfer is allowed for the requesting client.
Functions
@spec apply_transfer( String.t() | DNS.Zone.Name.t(), [DNS.Message.Record.t()], keyword() ) :: {:ok, DNS.Zone.t()} | {:error, String.t()}
Apply transferred zone data to local zone store.
@spec axfr(String.t() | DNS.Zone.Name.t()) :: {:ok, [DNS.Message.Record.t()]} | {:error, String.t()}
Perform full zone transfer (AXFR) for a zone.
@spec create_transfer_request( String.t() | DNS.Zone.Name.t(), :axfr | :ixfr, keyword() ) :: {:ok, map()} | {:error, String.t()}
Create zone transfer request.
@spec create_transfer_response( String.t() | DNS.Zone.Name.t(), [DNS.Message.Record.t()], :axfr | :ixfr ) :: {:ok, map()} | {:error, String.t()}
Create zone transfer response message.
@spec ixfr(String.t() | DNS.Zone.Name.t(), integer() | DateTime.t()) :: {:ok, [DNS.Message.Record.t()]} | {:error, String.t()}
Perform incremental zone transfer (IXFR) for a zone.
@spec transfer_allowed?(String.t() | DNS.Zone.Name.t(), :inet.ip_address()) :: boolean()
Validate if zone transfer is allowed for the requesting client.