Known subclasses: twisted.names.authority.BindAuthority, twisted.names.authority.PySourceAuthority, twisted.names.secondary.SecondaryAuthority

An Authority that is loaded from a file.

This is an abstract class that implements record search logic. To create a functional resolver, subclass it and override the loadFile method.

Instance Variable soa A 2-tuple containing the SOA domain name as a bytes and a dns.Record_SOA.
Instance Variable records A mapping of domains (as lowercased bytes) to records. (type: dict with byte keys)
Method __init__ Undocumented
Method __setstate__ Undocumented
Method loadFile Load DNS records from a file.
Method lookupZone Perform an AXFR record lookup.
Instance Variable _ADDITIONAL_PROCESSING_TYPES Record types for which additional processing will be done.
Instance Variable _ADDRESS_TYPES Record types which are useful for inclusion in the additional section generated during additional processing.
Method _additionalRecords Find locally known information that could be useful to the consumer of the response and construct appropriate records to include in the additional section of that response.
Method _lookup Determine a response to a particular DNS query.
Method _cbAllRecords Undocumented

Inherited from ResolverBase:

Method exceptionForCode Convert a response code (one of the possible values of dns.Message.rCode to an exception instance representing it.
Method query Dispatch query to the method which can handle its type.
Method lookupAddress Perform an A record lookup.
Method lookupIPV6Address Perform an AAAA record lookup.
Method lookupAddress6 Perform an A6 record lookup.
Method lookupMailExchange Perform an MX record lookup.
Method lookupNameservers Perform an NS record lookup.
Method lookupCanonicalName Perform a CNAME record lookup.
Method lookupMailBox Perform an MB record lookup.
Method lookupMailGroup Perform an MG record lookup.
Method lookupMailRename Perform an MR record lookup.
Method lookupPointer Perform a PTR record lookup.
Method lookupAuthority Perform an SOA record lookup.
Method lookupNull Perform a NULL record lookup.
Method lookupWellKnownServices Perform a WKS record lookup.
Method lookupService Perform an SRV record lookup.
Method lookupHostInfo Perform a HINFO record lookup.
Method lookupMailboxInfo Perform an MINFO record lookup.
Method lookupText Perform a TXT record lookup.
Method lookupSenderPolicy Perform a SPF record lookup.
Method lookupResponsibility Perform an RP record lookup.
Method lookupAFSDatabase Perform an AFSDB record lookup.
Method lookupNamingAuthorityPointer Perform a NAPTR record lookup.
Method lookupAllRecords Perform an ALL_RECORD lookup.
Method getHostByName Resolve the domain name name into an IP address.
Class Variable _errormap A dict mapping DNS protocol failure response codes to exception classes which will be used to represent those failures.
Method _cbRecords Undocumented
_ADDITIONAL_PROCESSING_TYPES =
Record types for which additional processing will be done.
_ADDRESS_TYPES =
Record types which are useful for inclusion in the additional section generated during additional processing.
soa =
A 2-tuple containing the SOA domain name as a bytes and a dns.Record_SOA.
records =
A mapping of domains (as lowercased bytes) to records. (type: dict with byte keys)
def __init__(self, filename):
def __setstate__(self, state):
Undocumented
def loadFile(self, filename):

Load DNS records from a file.

This method populates the soa and records attributes. It must be overridden in a subclass. It is called once from the initializer.

ParametersfilenameThe filename parameter that was passed to the initilizer.
ReturnsNone -- the return value is ignored
def _additionalRecords(self, answer, authority, ttl):

Find locally known information that could be useful to the consumer of the response and construct appropriate records to include in the additional section of that response.

Essentially, implement RFC 1034 section 4.3.2 step 6.

ParametersanswerA list of the records which will be included in the answer section of the response.
authorityA list of the records which will be included in the authority section of the response.
ttlThe default TTL for records for which this is not otherwise specified.
ReturnsA generator of dns.RRHeader instances for inclusion in the additional section. These instances represent extra information about the records in answer and authority.
def _lookup(self, name, cls, type, timeout=None):

Determine a response to a particular DNS query.

ParametersnameThe name which is being queried and for which to lookup a response. (type: bytes)
clsThe class which is being queried. Only IN is implemented here and this value is presently disregarded. (type: int)
typeThe type of records being queried. See the types defined in twisted.names.dns. (type: int)
timeoutAll processing is done locally and a result is available immediately, so the timeout value is ignored.
ReturnsA Deferred that fires with a tuple of three sets of response records (to comprise the answer, authority, and additional sections of a DNS response) or with a Failure if there is a problem processing the query.
def lookupZone(self, name, timeout=10):

Perform an AXFR record lookup.

NB This is quite different from other DNS requests. See http://cr.yp.to/djbdns/axfr-notes.html for more information.

NB Unlike other lookup* methods, the timeout here is not a list of ints, it is a single int.

ParametersnameDNS name to resolve. (type: bytes or str)
timeoutWhen this timeout expires, the query is considered failed. (type: int)
ReturnsA Deferred which fires with a three-tuple of lists of twisted.names.dns.RRHeader instances. The first element of the tuple gives answers. The second and third elements are always empty. The Deferred may instead fail with one of the exceptions defined in twisted.names.error or with NotImplementedError. (type: Deferred)
def _cbAllRecords(self, results):
Undocumented
API Documentation for twisted, generated by pydoctor at 2020-03-25 17:34:30.