pyptlib documentation

pyptlib.client_config

Contents

Source code for pyptlib.client_config

#!/usr/bin/python
# -*- coding: utf-8 -*-

"""
Low-level parts of pyptlib that are only useful to clients.
"""

from pyptlib.config import Config

[docs]class ClientConfig(Config): """ A client-side pyptlib configuration. :raises: :class:`pyptlib.config.EnvError` if environment was incomplete or corrupted. """ def __init__(self): Config.__init__(self) self.transports = self.get('TOR_PT_CLIENT_TRANSPORTS').split(',') if '*' in self.transports: self.allTransportsEnabled = True self.transports.remove('*')
[docs] def getClientTransports(self): # XXX why is this client-specific ??? """ Return a list of strings representing the client transports reported by Tor. If present, the wildcard transport, '*', is stripped from this list and used to set allTransportsEnabled to True. :returns: list of transports """ return self.transports
[docs] def writeMethod(self, name, socksVersion, addrport, args=None, optArgs=None): """ Write a message to stdout announcing that a transport was successfully launched. :param str name: Name of transport. :param int socksVersion: The SOCKS protocol version. :param tuple addrport: (addr,port) where this transport is listening for connections. :param str args: ARGS field for this transport. :param str optArgs: OPT-ARGS field for this transport. """ methodLine = 'CMETHOD %s socks%s %s:%s' % (name, socksVersion, addrport[0], addrport[1]) if args and len(args) > 0: methodLine = methodLine + ' ARGS=' + args.join(',') if optArgs and len(optArgs) > 0: methodLine = methodLine + ' OPT-ARGS=' + args.join(',') self.emit(methodLine)
[docs] def writeMethodError(self, name, message): """ Write a message to stdout announcing that we failed to launch a transport. :param str name: Name of transport. :param str message: Error message. """ self.emit('CMETHOD-ERROR %s %s' % (name, message))
[docs] def writeMethodEnd(self): """ Write a message to stdout announcing that we finished launching transports.. """ self.emit('CMETHODS DONE')

Contents