class twisted.names.client.Resolver(common.ResolverBase): (source)
Class Variable | index | Undocumented |
Instance Variable | timeout | Undocumented |
Instance Variable | factory | Undocumented |
Instance Variable | servers | Undocumented |
Instance Variable | dynServers | Undocumented |
Instance Variable | pending | Undocumented |
Instance Variable | connections | Undocumented |
Instance Variable | resolv | Undocumented |
Method | __init__ | No summary |
Method | __getstate__ | Undocumented |
Method | __setstate__ | Undocumented |
Method | maybeParseConfig | Undocumented |
Method | parseConfig | Undocumented |
Instance Variable | domain | Undocumented |
Instance Variable | search | Undocumented |
Method | pickServer | Return the address of a nameserver. |
Method | connectionMade | Called by associated dns.DNSProtocol instances when they connect. |
Method | connectionLost | Called by associated dns.DNSProtocol instances when they disconnect. |
Method | messageReceived | Undocumented |
Method | queryUDP | Make a number of DNS queries via UDP. |
Method | queryTCP | Make a number of DNS queries via TCP. |
Method | filterAnswers | Extract results from the given message. |
Method | lookupZone | Perform an AXFR record lookup. |
Instance Variable | _waiting | A dict mapping tuple keys of query name/type/class to Deferreds which will be called back with the result of those queries. This is used to avoid issuing the same query more than once in parallel. This is more efficient on the network and helps avoid a "birthday paradox" attack by keeping the number of outstanding requests for a particular query fixed at one instead of allowing the attacker to raise it to an arbitrary number. |
Instance Variable | _reactor | A provider of IReactorTCP , IReactorUDP , and IReactorTime which will be used to set up network resources and track timeouts. |
Instance Variable | _lastResolvTime | Undocumented |
Class Variable | _resolvReadInterval | Undocumented |
Method | _openFile | Wrapper used for opening files in the class, exists primarily for unit testing purposes. |
Instance Variable | _parseCall | Undocumented |
Method | _connectedProtocol | Return a new DNSDatagramProtocol bound to a randomly selected port number. |
Method | _query | Get a new DNSDatagramProtocol instance from _connectedProtocol , issue a query to it using *args , and arrange for it to be disconnected from its transport after the query completes. |
Method | _reissue | Undocumented |
Method | _lookup | Build a dns.Query for the given parameters and dispatch it via UDP. |
Method | _timeoutZone | Undocumented |
Method | _cbLookupZone | Undocumented |
Inherited from ResolverBase:
Instance Variable | typeToMethod | Undocumented |
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. |
Class Variable | _log | Undocumented |
Method | _cbRecords | Undocumented |
dict
mapping tuple keys of query name/type/class to Deferreds which will be called back with the result of those queries. This is used to avoid issuing the same query more than once in parallel. This is more efficient on the network and helps avoid a "birthday paradox" attack by keeping the number of outstanding requests for a particular query fixed at one instead of allowing the attacker to raise it to an arbitrary number.dict
)
IReactorTCP
, IReactorUDP
, and IReactorTime
which will be used to set up network resources and track timeouts.Construct a resolver which will query domain name servers listed in the resolv.conf(5)
-format file given by resolv
as well as those in the given servers
list. Servers are queried in a round-robin fashion. If given, resolv
is periodically checked for modification and re-parsed if it is noticed to have changed.
Parameters | resolv | Filename to read and parse as a resolver(5) configuration file. (type: str ) |
servers | If not None, interpreted as a list of (host, port) pairs specifying addresses of domain name servers to attempt to use for this lookup. Host addresses should be in IPv4 dotted-quad form. If specified, overrides resolv . (type: list of (str, int) or None ) | |
timeout | Default number of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. (type: Sequence of int ) | |
reactor | A provider of IReactorTime , IReactorUDP , and IReactorTCP which will be used to establish connections, listen for DNS datagrams, and enforce timeouts. If not provided, the global reactor will be used. | |
Raises | ValueError | Raised if no nameserver addresses can be found. |
Wrapper used for opening files in the class, exists primarily for unit testing purposes.
Return the address of a nameserver.
TODO: Weight servers for response time so faster ones can be preferred.
Return a new DNSDatagramProtocol
bound to a randomly selected port number.
Called by associated dns.DNSProtocol
instances when they connect.
Called by associated dns.DNSProtocol
instances when they disconnect.
Get a new DNSDatagramProtocol
instance from _connectedProtocol
, issue a query to it using *args
, and arrange for it to be disconnected from its transport after the query completes.
Parameters | args | Positional arguments to be passed to DNSDatagramProtocol.query . |
Returns | A Deferred which will be called back with the result of the query. |
Make a number of DNS queries via UDP.
Parameters | queries | The queries to make. (type: A list of dns.Query instances) |
timeout | Number of seconds after which to reissue the query. When the last timeout expires, the query is considered failed. (type: Sequence of int ) | |
Returns | Undocumented (type: Deferred @raise twisted.internet.defer.TimeoutError : When the query times out.) |
Make a number of DNS queries via TCP.
Parameters | queries | The queries to make. (type: Any non-zero number of dns.Query instances) |
timeout | The number of seconds after which to fail. (type: int ) | |
Returns | Undocumented (type: Deferred ) |
Extract results from the given message.
If the message was truncated, re-attempt the query over TCP and return a Deferred which will fire with the results of that query.
If the message's result code is not twisted.names.dns.OK
, return a Failure indicating the type of error which occurred.
Otherwise, return a three-tuple of lists containing the results from the answers section, the authority section, and the additional section.
Build a dns.Query
for the given parameters and dispatch it via UDP.
If this query is already outstanding, it will not be re-issued. Instead, when the outstanding query receives a response, that response will be re-used for this query as well.
Parameters | name | Undocumented (type: str ) |
cls | Undocumented (type: int ) | |
type | Undocumented (type: int ) | |
timeout | Undocumented | |
Returns | A Deferred which fires with a three-tuple giving the answer, authority, and additional sections of the response or with a Failure if the response code is anything other than dns.OK . |
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.
Parameters | name | DNS name to resolve. |
timeout | When this timeout expires, the query is considered failed. | |
Returns | A 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 . |