DNS protocol implementation.

Future Plans:

  • Get rid of some toplevels, maybe.
Function randomSource Wrapper around twisted.python.randbytes.RandomFactory.secureRandom to return 2 random chars.
Interface IRecord A single entry in a zone of authority.
Function str2time Parse a string description of an interval into an integer number of seconds.
Function readPrecisely Undocumented
Interface IEncodable Interface for something which can be encoded to and decoded from a file object.
Class Charstr No class docstring; 3/7 methods documented
Class Name A name in the domain name system, made up of multiple labels. For example, twistedmatrix.com.
Class Query Represent a single DNS query.
Class RRHeader A resource record header.
Class SimpleRecord A Resource Record which consists of a single RFC 1035 domain-name.
Class Record_NS An authoritative nameserver.
Class Record_MD A mail destination.
Class Record_MF A mail forwarder.
Class Record_CNAME The canonical name for an alias.
Class Record_MB A mailbox domain name.
Class Record_MG A mail group member.
Class Record_MR A mail rename domain name.
Class Record_PTR A domain name pointer.
Class Record_DNAME A non-terminal DNS name redirection.
Class Record_A An IPv4 host address.
Class Record_SOA Marks the start of a zone of authority.
Class Record_NULL A null record.
Class Record_WKS A well known service description.
Class Record_AAAA An IPv6 host address.
Class Record_A6 An IPv6 address.
Class Record_SRV The location of the server(s) for a specific protocol and domain.
Class Record_NAPTR The location of the server(s) for a specific protocol and domain.
Class Record_AFSDB Map from a domain name to the name of an AFS cell database server.
Class Record_RP The responsible person for a domain.
Class Record_HINFO Host information.
Class Record_MINFO Mailbox or mail list information.
Class Record_MX Mail exchange.
Class Record_SSHFP A record containing the fingerprint of an SSH key.
Class Record_TXT Freeform text.
Class UnknownRecord Encapsulate the wire data for unknown record types so that they can pass through the system unchanged.
Class Record_SPF Structurally, freeform text. Semantically, a policy definition, formatted as defined in rfc 4408.
Class Record_TSIG A transaction signature, encapsulated in a RR, as described in RFC 2845.
Class Message Message contains all the information represented by a single DNS request or response.
Class DNSMixin DNS protocol mixin shared by UDP and TCP implementations.
Class DNSDatagramProtocol DNS protocol over UDP.
Class DNSProtocol DNS protocol over TCP.
Function _ord2bytes Construct a bytes object representing a single byte with the given ordinal value.
Function _nicebytes Represent a mostly textful bytes object in a way suitable for presentation to an end user.
Function _nicebyteslist Represent a list of mostly textful bytes objects in a way suitable for presentation to an end user.
Function _nameToLabels Split a domain name into its constituent labels.
Function _isSubdomainOf Test whether descendantName is equal to or is a subdomain of ancestorName.
Class _OPTHeader An OPT record header.
Class _OPTVariableOption A class to represent OPT record variable options.
Function _responseFromMessage Generate a Message like instance suitable for use as the response to message.
Function _getDisplayableArguments Inspect the function signature of obj's constructor, and get a list of which arguments should be displayed. This is a helper function for _compactRepr.
Function _compactRepr Return a str representation of obj which only shows fields with non-default values, flags which are True and sections which have been explicitly set.
Class _EDNSMessage An EDNS message.
def _ord2bytes(ordinal): (source)

Construct a bytes object representing a single byte with the given ordinal value.

Returns (type: bytes)
def _nicebytes(bytes): (source)

Represent a mostly textful bytes object in a way suitable for presentation to an end user.

ParametersbytesThe bytes to represent.
Returns (type: str)
def _nicebyteslist(list): (source)

Represent a list of mostly textful bytes objects in a way suitable for presentation to an end user.

ParameterslistThe list of bytes to represent.
Returns (type: str)
def randomSource(): (source)

Wrapper around twisted.python.randbytes.RandomFactory.secureRandom to return 2 random chars.

def _nameToLabels(name): (source)

Split a domain name into its constituent labels.

ParametersnameA fully qualified domain name (with or without a trailing dot). (type: bytes)
ReturnsA list of labels ending with an empty label representing the DNS root zone.
def _isSubdomainOf(descendantName, ancestorName): (source)

Test whether descendantName is equal to or is a subdomain of ancestorName.

The names are compared case-insensitively.

The names are treated as byte strings containing one or more DNS labels separated by ..

descendantName is considered equal if its sequence of labels exactly matches the labels of ancestorName.

descendantName is considered a subdomain if its sequence of labels ends with the labels of ancestorName.

ParametersdescendantNameThe DNS subdomain name. (type: bytes)
ancestorNameThe DNS parent or ancestor domain name. (type: bytes)
ReturnsTrue if descendantName is equal to or if it is a subdomain of ancestorName. Otherwise returns False.
def str2time(s): (source)

Parse a string description of an interval into an integer number of seconds.

ParameterssAn interval definition constructed as an interval duration followed by an interval unit. An interval duration is a base ten representation of an integer. An interval unit is one of the following letters: S (seconds), M (minutes), H (hours), D (days), W (weeks), or Y (years). For example: "3S" indicates an interval of three seconds; "5D" indicates an interval of five days. Alternatively, s may be any non-string and it will be returned unmodified. (type: text string (bytes or unicode) for parsing; anything else for passthrough.)
Returnsan int giving the interval represented by the string s, or whatever s is if it is not a string.
def readPrecisely(file, l): (source)
Undocumented
def _responseFromMessage(responseConstructor, message, **kwargs): (source)

Generate a Message like instance suitable for use as the response to message.

The queries, id attributes will be copied from message and the answer flag will be set to True.

ParametersresponseConstructorA response message constructor with an initializer signature matching dns.Message.__init__. (type: callable)
messageA request message. (type: Message)
kwargsKeyword arguments which will be passed to the initialiser of the response message. (type: dict)
ReturnsA Message like response instance. (type: responseConstructor)
def _getDisplayableArguments(obj, alwaysShow, fieldNames): (source)

Inspect the function signature of obj's constructor, and get a list of which arguments should be displayed. This is a helper function for _compactRepr.

ParametersobjThe instance whose repr is being generated.
alwaysShowA list of field names which should always be shown.
fieldNamesA list of field attribute names which should be shown if they have non-default values.
ReturnsA list of displayable arguments.
def _compactRepr(obj, alwaysShow=None, flagNames=None, fieldNames=None, sectionNames=None): (source)

Return a str representation of obj which only shows fields with non-default values, flags which are True and sections which have been explicitly set.

ParametersobjThe instance whose repr is being generated.
alwaysShowA list of field names which should always be shown.
flagNamesA list of flag attribute names which should be shown if they are True.
fieldNamesA list of field attribute names which should be shown if they have non-default values.
sectionNamesA list of section attribute names which should be shown if they have been assigned a value.
ReturnsA str representation of obj.
API Documentation for Twisted, generated by pydoctor at 2019-08-06 12:10:50.