class documentation

class twisted.names.srvconnect.SRVConnector: (source)

Implements interfaces: twisted.internet.interfaces.IConnector

View In Hierarchy

A connector that looks up DNS SRV records.

RFC 2782 details how SRV records should be interpreted and selected for subsequent connection attempts. The algorithm for using the records' priority and weight is implemented in pickServer.

Instance Variable servers List of candidate server records for future connection attempts.
Instance Variable orderedServers List of server records that have already been tried in this round of connection attempts.
Instance Variable stopAfterDNS Undocumented
Method __init__
Instance Variable reactor Undocumented
Instance Variable service Undocumented
Instance Variable domain Undocumented
Instance Variable factory Undocumented
Instance Variable protocol Undocumented
Instance Variable connectFuncName Undocumented
Instance Variable connectFuncArgs Undocumented
Instance Variable connectFuncKwArgs Undocumented
Instance Variable connector Undocumented
Method connect Start connection to remote server.
Method pickServer Pick the next server.
Instance Variable host Undocumented
Instance Variable port Undocumented
Method stopConnecting Stop attempting to connect.
Method disconnect Disconnect whatever our are state is.
Method getDestination Return destination this will try to connect to.
Method connectionFailed Undocumented
Method connectionLost Undocumented
Instance Variable _defaultPort Undocumented
Method _ebGotServers Undocumented
Method _cbGotServers Undocumented
Method _ebServiceUnknown Connect to the default port when the service name is unknown.
Method _reallyConnect Undocumented
servers = (source)
List of candidate server records for future connection attempts.
(type: list of dns.Record_SRV)
orderedServers = (source)
List of server records that have already been tried in this round of connection attempts.
(type: list of dns.Record_SRV)
stopAfterDNS = (source)

Undocumented

(type: int)
def __init__(self, reactor, service, domain, factory, protocol='tcp', connectFuncName='connectTCP', connectFuncArgs=(), connectFuncKwArgs={}, defaultPort=None): (source)
ParametersreactorUndocumented
serviceUndocumented
domainThe domain to connect to. If passed as a text string, it will be encoded using idna encoding. (type: bytes or str)
factoryUndocumented
protocolUndocumented
connectFuncNameUndocumented
connectFuncArgsUndocumented
connectFuncKwArgsUndocumented
defaultPortOptional default port number to be used when SRV lookup fails and the service name is unknown. This should be the port number associated with the service name as defined by the IANA registry. (type: int)
reactor = (source)

Undocumented

service = (source)

Undocumented

domain = (source)

Undocumented

factory = (source)

Undocumented

protocol = (source)

Undocumented

connectFuncName = (source)

Undocumented

connectFuncArgs = (source)

Undocumented

connectFuncKwArgs = (source)

Undocumented

_defaultPort = (source)

Undocumented

connector = (source)

Undocumented

def connect(self): (source)

Start connection to remote server.

def _ebGotServers(self, failure): (source)

Undocumented

def _cbGotServers(self, result): (source)

Undocumented

def _ebServiceUnknown(self, failure): (source)

Connect to the default port when the service name is unknown.

If no SRV records were found, the service name will be passed as the port. If resolving the name fails with error.ServiceNameUnknownError, a final attempt is done using the default port.

def pickServer(self): (source)

Pick the next server.

This selects the next server from the list of SRV records according to their priority and weight values, as set out by the default algorithm specified in RFC 2782.

At the beginning of a round, servers is populated with orderedServers, and the latter is made empty. servers is the list of candidates, and orderedServers is the list of servers that have already been tried.

First, all records are ordered by priority and weight in ascending order. Then for each priority level, a running sum is calculated over the sorted list of records for that priority. Then a random value between 0 and the final sum is compared to each record in order. The first record that is greater than or equal to that random value is chosen and removed from the list of candidates for this round.

ReturnsA tuple of target hostname and port from the chosen DNS SRV record. (type: tuple of native str and int)
def _reallyConnect(self): (source)

Undocumented

host = (source)

Undocumented

port = (source)

Undocumented

def stopConnecting(self): (source)

Stop attempting to connect.

def disconnect(self): (source)

Disconnect whatever our are state is.

def getDestination(self): (source)

Return destination this will try to connect to.

ReturnsAn object which provides IAddress.
def connectionFailed(self, reason): (source)

Undocumented

def connectionLost(self, reason): (source)

Undocumented

API Documentation for Twisted, generated by pydoctor 20.12.1 at 2021-02-28 19:53:36.