pyptlib documentation

pyptlib Package

Contents

pyptlib Package

client Module

Public client-side pyptlib API.

pyptlib.client.init(supported_transports)[source]

Bootstrap client-side managed-proxy mode.

Call in the beginning of your application.

Parameters:supported_transports (list) – Names of the transports that the application supports.
Returns:dictionary that contains information for the application.
Key Type Value
state_loc string Directory where the managed proxy should dump its state files (if needed).
transports list Strings of the names of the transports that should be launched. The list can be empty.
Raises :pyptlib.config.EnvError if environment was incomplete or corrupted.
pyptlib.client.reportEnd()[source]

Report that we are done launching transports.

Call after you have launched all the transports you could launch.

pyptlib.client.reportFailure(name, message)[source]

Report that a client transport failed to launch.

Always call after failing to launch a transport.

Parameters:
  • name (str) – Name of transport.
  • message (str) – Error message.
pyptlib.client.reportSuccess(name, socksVersion, addrport, args=None, optArgs=None)[source]

Report that a client transport was launched succesfully.

Always call after successfully launching a transport.

Parameters:
  • name (str) – Name of transport.
  • socksVersion (int) – The SOCKS protocol version.
  • addrport (tuple) – (addr,port) where this transport is listening for connections.
  • args (str) – ARGS field for this transport.
  • args – OPT-ARGS field for this transport.

client_config Module

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

class pyptlib.client_config.ClientConfig[source]

Bases: pyptlib.config.Config

A client-side pyptlib configuration.

Raises :pyptlib.config.EnvError if environment was incomplete or corrupted.
getClientTransports()[source]

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
writeMethod(name, socksVersion, addrport, args=None, optArgs=None)[source]

Write a message to stdout announcing that a transport was successfully launched.

Parameters:
  • name (str) – Name of transport.
  • socksVersion (int) – The SOCKS protocol version.
  • addrport (tuple) – (addr,port) where this transport is listening for connections.
  • args (str) – ARGS field for this transport.
  • optArgs (str) – OPT-ARGS field for this transport.
writeMethodEnd()[source]

Write a message to stdout announcing that we finished launching transports..

writeMethodError(name, message)[source]

Write a message to stdout announcing that we failed to launch a transport.

Parameters:
  • name (str) – Name of transport.
  • message (str) – Error message.

config Module

Parts of pyptlib that are useful both to clients and servers.

class pyptlib.config.Config[source]

Bases: object

pyptlib’s configuration.

Variables:
  • stateLocation (string) – Location where application should store state.
  • managedTransportVer (list) – List of managed-proxy protocol versions that Tor supports.
  • transports (list) – Strings of pluggable transport names that Tor wants us to handle.
  • allTransportsEnabled (bool) – True if Tor wants us to spawn all the transports.
Raises :

pyptlib.config.EnvError if environment was incomplete or corrupted.

allTransportsEnabled = False
check(key)[source]

Check the environment for a specific environment variable.

Parameters:key (str) – Environment variable key.
Returns:bool – True if the environment variable is set.
checkClientMode()[source]

Check whether Tor wants us to run as a client or as a server.

Returns:bool – True if Tor wants us to run as a client.
checkManagedTransportVersion(version)[source]

Check if Tor supports a specific managed-proxy protocol version.

Parameters:version (string) – A managed-proxy protocol version.
Returns:bool – True if version is supported.
checkTransportEnabled(transport)[source]

Check if Tor wants the application to spawn a specific transport.

Parameters:transport (string) – The name of a pluggable transport.
Returns:bool – True if Tor wants the application to spawn that transport.
emit(msg)[source]

Announce a message.

Parameters:msg (str) – A message.
get(key)[source]

Get the value of an environment variable.

Parameters:key (str) – Environment variable key.
Returns:str – The value of the envrionment variable.
Raises :pyptlib.config.EnvError if environment

variable could not be found.

getAllTransportsEnabled()[source]

Check if Tor wants the application to spawn all its transpotrs.

Returns:bool – True if Tor wants the application to spawn all its transports.
getManagedTransportVersions()[source]
Returns:list – The managed-proxy protocol versions that Tor supports.
getStateLocation()[source]
Returns:string – The state location.
managedTransportVer = []
stateLocation = None
transports = []
writeEnvError(message)[source]

Announce that an error occured while parsing the environment.

Parameters:message (str) – Error message.
writeVersion(version)[source]

Announce that a specific managed-proxy protocol version is supported.

Parameters:version (str) – A managed-proxy protocol version.
writeVersionError()[source]

Announce that we could not find a supported managed-proxy protocol version.

exception pyptlib.config.EnvError[source]

Bases: exceptions.Exception

Thrown when the environment is incomplete or corrupted.

server Module

Public server-side pyptlib API.

pyptlib.server.init(supported_transports)[source]

Bootstrap server-side managed-proxy mode.

Call in the beginning of your application.

Parameters:supported_transports (list) – Names of the transports that the application supports.
Returns:dictionary that contains information for the application:
Raises :pyptlib.config.EnvError if environment was incomplete or corrupted.
pyptlib.server.reportEnd()[source]

Report that we are done launching transports.

Call after you have launched all the transports you could launch.

pyptlib.server.reportFailure(name, message)[source]

Report that a server transport failed to launch.

Always call after failing to launch a transport.

Parameters:
  • name (str) – Name of transport.
  • message (str) – Error message.
pyptlib.server.reportSuccess(name, addrport, options)[source]

Report that a server transport was launched succesfully.

Always call after successfully launching a transport.

Parameters:
  • name (str) – Name of transport.
  • addrport (tuple) – (addr,port) where this transport is listening for connections.
  • options (str) – Transport options.

server_config Module

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

class pyptlib.server_config.ServerConfig[source]

Bases: pyptlib.config.Config

A client-side pyptlib configuration.

Variables:
  • ORPort (tuple) – (ip,port) pointing to Tor’s ORPort.
  • extendedORPort (tuple) – (ip,port) pointing to Tor’s Extended ORPort. None if Extended ORPort is not supported.
  • serverBindAddr (dict) – A dictionary {<transport> : [<addr>, <port>]}, where <transport> is the name of the transport that must be spawned, and [<addr>, <port>] is a list containing the location where that transport should bind. The dictionary can be empty.
  • authCookieFile (string) – String representing the filesystem path where the Extended ORPort Authentication cookie is stored. None if Extended ORPort authentication is not supported.
Raises :

pyptlib.config.EnvError if environment was incomplete or corrupted.

getAuthCookieFile()[source]
Returns:pyptlib.server_config.ServerConfig.authCookieFile
getExtendedORPort()[source]
Returns:pyptlib.server_config.ServerConfig.extendedORPort
getORPort()[source]
Returns:pyptlib.server_config.ServerConfig.ORPort
getServerBindAddresses()[source]
Returns:pyptlib.server_config.ServerConfig.serverBindAddr
getServerTransports()[source]
Returns:pyptlib.config.Config.transports
get_addrport(key)[source]

Parse an environment variable holding an address:port value.

Parameters:key (str) – Environment variable key.
Returns:tuple – (address,port)
Raises :pyptlib.config.EnvError if string was not in address:port format.
get_addrport_from_string(string)[source]

Parse a string holding an address:port value.

Parameters:string (str) – A string.
Returns:tuple – (address,port)
Raises :pyptlib.config.EnvError if string was not in address:port format.
writeMethod(name, addrport, options)[source]

Write a message to stdout announcing that a server transport was successfully launched.

Parameters:
  • name (str) – Name of transport.
  • addrport (tuple) – (addr,port) where this transport is listening for connections.
  • options (str) – Transport options.
writeMethodEnd()[source]

Write a message to stdout announcing that we finished launching transports..

writeMethodError(name, message)[source]

Write a message to stdout announcing that we failed to launch a transport.

Parameters:
  • name (str) – Name of transport.
  • message (str) – Error message.

util Module

Utility functions.

pyptlib.util.checkClientMode()[source]

Check whether Tor wants us to run as a client or as a server.

Returns:bool – True if Tor wants us to run as a client.

Contents