Package pyxmpp :: Module resolver |
[hide private]

# Module resolver

source code

DNS resolever with SRV record support.

Normative reference:
  - RFC 1035
  - RFC 2782

Functions | [hide private]
`list` of `dns.rdtypes.IN.SRV` |
shuffle_srv(records) Randomly reorder SRV records using their weights. | source code
`list` of `dns.rdtypes.IN.SRV` |
reorder_srv(records) Reorder SRV records using their priorities and weights. | source code
`list` of (`str`,`int`) |
resolve_srv(domain, service, proto=`'``tcp``'`) Resolve service domain to server name and port number using SRV records. | source code
`list` of (`int`, `int`, `int`, `str`, (`str`, `int`)) |
getaddrinfo(host, port, family=0, socktype=1, proto=0, allow_cname=True) Resolve host and port into addrinfo struct. | source code

Variables | [hide private]
| __revision__ = ``'``$Id: resolver.py 503 2005-01-03 21:59:36Z jajc``...``
| service_aliases = ``{``'``xmpp-server``'``:` `(``'``jabber-server``'``,` `'``jabber``'``)``}``
| ip_re = `re.compile(r'\d`{1,3}`\.\d`{1,3}`\.\d`{1,3}`\.\d`{1,3}`')`
| __package__ = ``'``pyxmpp``'``

Imports: re, socket, dns, random, idna

Function Details | [hide private]

### shuffle_srv(records) | source code
Randomly reorder SRV records using their weights. Parameters: `records` (sequence of `dns.rdtypes.IN.SRV`) - SRV records to shuffle. Returns: `list` of `dns.rdtypes.IN.SRV` reordered records.

### reorder_srv(records) | source code
Reorder SRV records using their priorities and weights. Parameters: `records` (`list` of `dns.rdtypes.IN.SRV`) - SRV records to shuffle. Returns: `list` of `dns.rdtypes.IN.SRV` reordered records.

### resolve_srv(domain, service, proto=`'``tcp``'`) | source code
Resolve service domain to server name and port number using SRV records. A built-in service alias table will be used to lookup also some obsolete record names. Parameters: `domain` (`unicode` or `str`) - domain name. `service` (`unicode` or `str`) - service name. `proto` (`str`) - protocol name. Returns: `list` of (`str`,`int`) host names and port numbers for the service or None.

### getaddrinfo(host, port, family=0, socktype=1, proto=0, allow_cname=True) | source code
Resolve host and port into addrinfo struct. Does the same thing as socket.getaddrinfo, but using pyxmpp.resolver. This makes it possible to reuse data (A records from the additional section of DNS reply) returned with SRV records lookup done using this module. Parameters: `host` (`unicode` or `str`) - service domain name. `port` (`int` or `str`) - service port number or name. `family` (`int`) - address family. `socktype` (`int`) - socket type. `proto` (`int` or `str`) - protocol number or name. `allow_cname` (`bool`) - when False CNAME responses are not allowed. Returns: `list` of (`int`, `int`, `int`, `str`, (`str`, `int`)) list of (family, socktype, proto, canonname, sockaddr).

Variables Details | [hide private]

  ### __revision__ Value:
      '$Id: resolver.py 503 2005-01-03 21:59:36Z jajcus $'