twisted.spread.pb.html [plain text]
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>twisted.spread.pb</title>
<link rel="stylesheet" href="epydoc.css" type="text/css"></link>
</head>
<body bgcolor="white" text="black" link="blue" vlink="#204080"
alink="#204080">
<!-- =========== START OF NAVBAR =========== -->
<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
<tr valign="center">
<th class="navbar"> <a class="navbar" href="twisted.html">Home</a> </th>
<th class="navbar"> <a class="navbar" href="trees.html">Trees</a> </th>
<th class="navbar"> <a class="navbar" href="indices.html">Index</a> </th>
<th class="navbar"> <a class="navbar" href="help.html">Help</a> </th>
<th class="navbar" align="right" width="100%">
<table border="0" cellpadding="0" cellspacing="0">
<tr><th class="navbar" align="center">
<p class="nomargin">
<a class="navbar" target="_top" href="http://twistedmatrix.com/">Twisted 1.3.0rc1</a>
</p></th></tr></table>
</th>
</tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0">
<tr valign="top">
<td width="100%">
<font size="-1"><b class="breadcrumbs">
<a href="twisted.html">Package twisted</a> ::
<a href="twisted.spread.html">Package spread</a> ::
Module pb
</b></font></br>
</td>
<td><table cellpadding="0" cellspacing="0">
<tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a> | <a href="twisted.spread.pb.html" target="_top">no frames</a>]</font></td></tr>
</table></td>
</tr></table>
<!-- =========== START OF MODULE DESCRIPTION =========== -->
<h2 class="module">Module twisted.spread.pb</h2>
<p>Perspective Broker</p>
<p>"This isn't a professional opinion, but it's probably got enough
internet to kill you." --glyph</p>
<p>Stability: semi-stable</p>
Future Plans: The connection APIs will be extended with support for
URLs, that will be able to extend resource location and discovery
conversations and specify different authentication mechanisms besides
username/password. This should only add to, and not change, the existing
protocol.
<h1 class="heading">Important Changes</h1>
<p>New APIs have been added for serving and connecting. On the client
side, use PBClientFactory.getPerspective() instead of connect(), and
PBClientFactory.getRootObject() instead of getObjectAt(). Server side
should switch to updated cred APIs by using PBServerFactory, at which
point clients would switch to PBClientFactory.login().</p>
<p>The new cred support means a different method is sent for login,
although the protocol is compatible on the binary level. When we switch
to pluggable credentials this will introduce another change, although
the current change will still be supported.</p>
The Perspective class is now deprecated, and has been replaced with
Avatar, which does not rely on the old cred APIs.
<h1 class="heading">Introduction</h1>
<p>This is a broker for proxies for and copies of objects. It provides
a translucent interface layer to those proxies.</p>
<p>The protocol is not opaque, because it provides objects which
represent the remote proxies and require no context (server references,
IDs) to operate on.</p>
It is not transparent because it does <i>not</i> attempt to make
remote objects behave identically, or even similiarly, to local
objects. Method calls are invoked asynchronously, and specific rules
are applied when serializing arguments.
<hr/>
<p><b>Author:</b> <a href="mailto:glyph@twistedmatrix.com">Glyph Lefkowitz</a>
</p>
<!-- =========== START OF CLASSES =========== -->
<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="summary">
<th colspan="2">Classes</th></tr>
<tr><td width="15%">
<b><a href="twisted.spread.pb._Detacher.html"><code>_Detacher</code></a></b></td>
<td>DEPRECATED.</td></tr>
<tr><td width="15%">
<b><a href="twisted.spread.pb._ObjectRetrieval.html"><code>_ObjectRetrieval</code></a></b></td>
<td>DEPRECATED.</td></tr>
<tr><td width="15%">
<b><a href="twisted.spread.pb._PortalAuthChallenger.html"><code>_PortalAuthChallenger</code></a></b></td>
<td>Called with response to password challenge.</td></tr>
<tr><td width="15%">
<b><a href="twisted.spread.pb._PortalRoot.html"><code>_PortalRoot</code></a></b></td>
<td>Root object, used to login to portal.</td></tr>
<tr><td width="15%">
<b><a href="twisted.spread.pb._PortalWrapper.html"><code>_PortalWrapper</code></a></b></td>
<td>Root Referenceable object, used to login to portal.</td></tr>
<tr><td width="15%">
<b><a href="twisted.spread.pb._RemoteCacheDummy.html"><code>_RemoteCacheDummy</code></a></b></td>
<td>Ignore.</td></tr>
<tr><td width="15%">
<b><a href="twisted.spread.pb.AsReferenceable.html"><code>AsReferenceable</code></a></b></td>
<td>AsReferenceable: a reference directed towards another object.</td></tr>
<tr><td width="15%">
<b><a href="twisted.spread.pb.AuthChallenger.html"><code>AuthChallenger</code></a></b></td>
<td>DEPRECATED.</td></tr>
<tr><td width="15%">
<b><a href="twisted.spread.pb.AuthRoot.html"><code>AuthRoot</code></a></b></td>
<td>DEPRECATED.</td></tr>
<tr><td width="15%">
<b><a href="twisted.spread.pb.AuthServ.html"><code>AuthServ</code></a></b></td>
<td>DEPRECATED.</td></tr>
<tr><td width="15%">
<b><a href="twisted.spread.pb.Avatar.html"><code>Avatar</code></a></b></td>
<td>A default IPerspective implementor.</td></tr>
<tr><td width="15%">
<b><a href="twisted.spread.pb.Broker.html"><code>Broker</code></a></b></td>
<td>I am a broker for objects.</td></tr>
<tr><td width="15%">
<b><a href="twisted.spread.pb.BrokerClientFactory.html"><code>BrokerClientFactory</code></a></b></td>
<td> </td></tr>
<tr><td width="15%">
<b><a href="twisted.spread.pb.BrokerFactory.html"><code>BrokerFactory</code></a></b></td>
<td>DEPRECATED, use PBServerFactory instead.</td></tr>
<tr><td width="15%">
<b><a href="twisted.spread.pb.CopiedFailure.html"><code>CopiedFailure</code></a></b></td>
<td> </td></tr>
<tr><td width="15%">
<b><a href="twisted.spread.pb.CopyableFailure.html"><code>CopyableFailure</code></a></b></td>
<td>A <a href="twisted.spread.flavors.RemoteCopy.html"
class="link"><code>flavors.RemoteCopy</code></a> and <a
href="twisted.spread.flavors.Copyable.html"
class="link"><code>flavors.Copyable</code></a> version of <a
href="twisted.python.failure.Failure.html"
class="link"><code>twisted.python.failure.Failure</code></a> for
serialization.</td></tr>
<tr><td width="15%">
<b><a href="twisted.spread.pb.IdentityConnector.html"><code>IdentityConnector</code></a></b></td>
<td>DEPRECATED.</td></tr>
<tr><td width="15%">
<b><a href="twisted.spread.pb.IdentityWrapper.html"><code>IdentityWrapper</code></a></b></td>
<td>DEPRECATED.</td></tr>
<tr><td width="15%">
<b><a href="twisted.spread.pb.IPerspective.html"><code>IPerspective</code></a></b></td>
<td>per*spec*tive, n.</td></tr>
<tr><td width="15%">
<b><a href="twisted.spread.pb.IUsernameMD5Password.html"><code>IUsernameMD5Password</code></a></b></td>
<td>I encapsulate a username and a hashed password.</td></tr>
<tr><td width="15%">
<b><a href="twisted.spread.pb.Local.html"><code>Local</code></a></b></td>
<td>(internal) A reference to a local object.</td></tr>
<tr><td width="15%">
<b><a href="twisted.spread.pb.PBClientFactory.html"><code>PBClientFactory</code></a></b></td>
<td>Client factory for PB brokers.</td></tr>
<tr><td width="15%">
<b><a href="twisted.spread.pb.PBServerFactory.html"><code>PBServerFactory</code></a></b></td>
<td>Server factory for perspective broker.</td></tr>
<tr><td width="15%">
<b><a href="twisted.spread.pb.Perspective.html"><code>Perspective</code></a></b></td>
<td>This class is DEPRECATED, because it relies on old cred APIs.</td></tr>
<tr><td width="15%">
<b><a href="twisted.spread.pb.RemoteMethod.html"><code>RemoteMethod</code></a></b></td>
<td>This is a translucent reference to a remote message.</td></tr>
<tr><td width="15%">
<b><a href="twisted.spread.pb.RemoteReference.html"><code>RemoteReference</code></a></b></td>
<td>This is a translucent reference to a remote object.</td></tr>
<tr><td width="15%">
<b><a href="twisted.spread.pb.Service.html"><code>Service</code></a></b></td>
<td>A service for Perspective Broker.</td></tr>
</table><br />
<!-- =========== START OF EXCEPTIONS =========== -->
<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="summary">
<th colspan="2">Exceptions</th></tr>
<tr><td width="15%">
<b><a href="twisted.spread.pb.DeadReferenceError.html"><code>DeadReferenceError</code></a></b></td>
<td>This error is raised when a method is called on a dead reference (one
whose broker has been disconnected).</td></tr>
<tr><td width="15%">
<b><a href="twisted.spread.pb.Error.html"><code>Error</code></a></b></td>
<td>This error can be raised to generate known error conditions.</td></tr>
<tr><td width="15%">
<b><a href="twisted.spread.pb.PBConnectionLost.html"><code>PBConnectionLost</code></a></b></td>
<td> </td></tr>
<tr><td width="15%">
<b><a href="twisted.spread.pb.ProtocolError.html"><code>ProtocolError</code></a></b></td>
<td>This error is raised when an invalid protocol statement is
received.</td></tr>
</table><br />
<!-- =========== START OF FUNCTION SUMMARY =========== -->
<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="summary">
<th colspan="2">Function Summary</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="_cbLogInRespond"></a><span class="summary-sig"><span class="summary-sig-name">_cbLogInRespond</span>((<span class=summary-sig-arg>challenge</span>,
<span class=summary-sig-arg>challenger</span>),
<span class=summary-sig-arg>d</span>,
<span class=summary-sig-arg>client</span>,
<span class=summary-sig-arg>service</span>,
<span class=summary-sig-arg>password</span>,
<span class=summary-sig-arg>perspectiveName</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="_cbLogInResponded"></a><span class="summary-sig"><span class="summary-sig-name">_cbLogInResponded</span>(<span class=summary-sig-arg>identity</span>,
<span class=summary-sig-arg>d</span>,
<span class=summary-sig-arg>client</span>,
<span class=summary-sig-arg>serviceName</span>,
<span class=summary-sig-arg>perspectiveName</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="_cbRespondToChallenge"></a><span class="summary-sig"><span class="summary-sig-name">_cbRespondToChallenge</span>((<span class=summary-sig-arg>challenge</span>,
<span class=summary-sig-arg>challenger</span>),
<span class=summary-sig-arg>password</span>,
<span class=summary-sig-arg>d</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="_connGotRoot"></a><span class="summary-sig"><span class="summary-sig-name">_connGotRoot</span>(<span class=summary-sig-arg>root</span>,
<span class=summary-sig-arg>d</span>,
<span class=summary-sig-arg>client</span>,
<span class=summary-sig-arg>serviceName</span>,
<span class=summary-sig-arg>username</span>,
<span class=summary-sig-arg>password</span>,
<span class=summary-sig-arg>perspectiveName</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.spread.pb.html#authIdentity" class="summary-sig-name"><code>authIdentity</code></a>(<span class=summary-sig-arg>authServRef</span>,
<span class=summary-sig-arg>username</span>,
<span class=summary-sig-arg>password</span>)</span></code>
<br />
DEPRECATED.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.spread.pb.html#challenge" class="summary-sig-name"><code>challenge</code></a>()</span></code>
<br />
I return some random data.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.spread.pb.html#connect" class="summary-sig-name"><code>connect</code></a>(<span class=summary-sig-arg>host</span>,
<span class=summary-sig-arg>port</span>,
<span class=summary-sig-arg>username</span>,
<span class=summary-sig-arg>password</span>,
<span class=summary-sig-arg>serviceName</span>,
<span class=summary-sig-arg>perspectiveName</span>,
<span class=summary-sig-arg>client</span>,
<span class=summary-sig-arg>timeout</span>)</span></code>
<br />
DEPRECATED.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="failure2Copyable"></a><span class="summary-sig"><span class="summary-sig-name">failure2Copyable</span>(<span class=summary-sig-arg>fail</span>,
<span class=summary-sig-arg>unsafeTracebacks</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.spread.pb.html#getObjectAt" class="summary-sig-name"><code>getObjectAt</code></a>(<span class=summary-sig-arg>host</span>,
<span class=summary-sig-arg>port</span>,
<span class=summary-sig-arg>timeout</span>)</span></code>
<br />
DEPRECATED.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.spread.pb.html#getObjectAtSSL" class="summary-sig-name"><code>getObjectAtSSL</code></a>(<span class=summary-sig-arg>host</span>,
<span class=summary-sig-arg>port</span>,
<span class=summary-sig-arg>timeout</span>,
<span class=summary-sig-arg>contextFactory</span>)</span></code>
<br />
DEPRECATED.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.spread.pb.html#getObjectRetriever" class="summary-sig-name"><code>getObjectRetriever</code></a>()</span></code>
<br />
DEPRECATED.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.spread.pb.html#logIn" class="summary-sig-name"><code>logIn</code></a>(<span class=summary-sig-arg>authServRef</span>,
<span class=summary-sig-arg>client</span>,
<span class=summary-sig-arg>service</span>,
<span class=summary-sig-arg>username</span>,
<span class=summary-sig-arg>password</span>,
<span class=summary-sig-arg>perspectiveName</span>)</span></code>
<br />
DEPRECATED.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.spread.pb.html#noOperation" class="summary-sig-name"><code>noOperation</code></a>(<span class="summary-sig-vararg">*args</span>,
<span class="summary-sig-kwarg">**kw</span>)</span></code>
<br />
Do nothing.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.spread.pb.html#printTraceback" class="summary-sig-name"><code>printTraceback</code></a>(<span class=summary-sig-arg>tb</span>)</span></code>
<br />
Print a traceback (string) to the standard log.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.spread.pb.html#respond" class="summary-sig-name"><code>respond</code></a>(<span class=summary-sig-arg>challenge</span>,
<span class=summary-sig-arg>password</span>)</span></code>
<br />
Respond to a challenge.</td></tr>
</table><br />
<!-- =========== START OF VARIABLE SUMMARY =========== -->
<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="summary">
<th colspan="2">Variable Summary</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.spread.pb.html#__version__"><code>__version__</code></a></b> = <span title="'1.157'"><code><span class="variable-quote">'</span>1.157<span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
<td><b><a href="twisted.spread.pb.html#MAX_BROKER_REFS"><code>MAX_BROKER_REFS</code></a></b> = <span title="1024">1024 </span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
<td><b><a href="twisted.spread.pb.html#portno"><code>portno</code></a></b> = <span title="8787">8787 </span></td></tr>
</table><br />
<!-- =========== START OF FUNCTION DETAILS =========== -->
<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="details">
<th colspan="2">Function Details</th></tr>
</table>
<a name="authIdentity"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">authIdentity</span>(<span class=sig-arg>authServRef</span>,
<span class=sig-arg>username</span>,
<span class=sig-arg>password</span>)</span>
</h3>
DEPRECATED. Return a Deferred which will do the challenge-response
dance and return a remote Identity reference.
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<a name="challenge"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">challenge</span>()</span>
</h3>
I return some random data.
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<a name="connect"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">connect</span>(<span class=sig-arg>host</span>,
<span class=sig-arg>port</span>,
<span class=sig-arg>username</span>,
<span class=sig-arg>password</span>,
<span class=sig-arg>serviceName</span>,
<span class=sig-arg>perspectiveName</span>=<span class=sig-default>None</span>,
<span class=sig-arg>client</span>=<span class=sig-default>None</span>,
<span class=sig-arg>timeout</span>=<span class=sig-default>None</span>)</span>
</h3>
<p>DEPRECATED. Connects and authenticates, then retrieves a PB
service.</p>
Required arguments:
<ul>
<li>
host -- the host the service is running on
</li>
<li>
port -- the port on the host to connect to
</li>
<li>
username -- the name you will be identified as to the
authorizer
</li>
<li>
password -- the password for this username
</li>
<li>
serviceName -- name of the service to request
</li>
</ul>
Optional (keyword) arguments:
<ul>
<li>
perspectiveName -- the name of the perspective to request, if
different than the username
</li>
<li>
client -- XXX the "reference" argument to
perspective.Perspective.attached
</li>
<li>
timeout -- see twisted.internet.tcp.Client
</li>
</ul>
<dl><dt></dt><dd>
<dl><dt><b>Returns:</b></dt>
<dd>
A Deferred instance that gets a callback when the final
Perspective is connected, and an errback when an error occurs at
any stage of connecting.
</dd>
</dl>
</dd></dl>
</td></tr></table>
<a name="getObjectAt"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">getObjectAt</span>(<span class=sig-arg>host</span>,
<span class=sig-arg>port</span>,
<span class=sig-arg>timeout</span>=<span class=sig-default>None</span>)</span>
</h3>
DEPRECATED. Establishes a PB connection and returns with a <a
href="twisted.spread.pb.RemoteReference.html"
class="link"><code>RemoteReference</code></a>.
<dl><dt></dt><dd>
<dl><dt><b>Parameters:</b></dt>
<dd><code><b>host</b></code> -
the host to connect to
<dd><code><b>port</b></code> -
the port number to connect to
<dd><code><b>timeout</b></code> -
a value in milliseconds to wait before failing by default.
(OPTIONAL)
</dd>
</dl>
<dl><dt><b>Returns:</b></dt>
<dd>
A Deferred which will be passed a remote reference to the root
object of a PB server.x
</dd>
</dl>
</dd></dl>
</td></tr></table>
<a name="getObjectAtSSL"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">getObjectAtSSL</span>(<span class=sig-arg>host</span>,
<span class=sig-arg>port</span>,
<span class=sig-arg>timeout</span>=<span class=sig-default>None</span>,
<span class=sig-arg>contextFactory</span>=<span class=sig-default>None</span>)</span>
</h3>
DEPRECATED. Establishes a PB connection over SSL and returns with a
RemoteReference.
<dl><dt></dt><dd>
<dl><dt><b>Parameters:</b></dt>
<dd><code><b>host</b></code> -
the host to connect to
<dd><code><b>port</b></code> -
the port number to connect to
<dd><code><b>timeout</b></code> -
a value in milliseconds to wait before failing by default.
(OPTIONAL)
<dd><code><b>contextFactory</b></code> -
A factory object for producing SSL.Context objects.
(OPTIONAL)
</dd>
</dl>
<dl><dt><b>Returns:</b></dt>
<dd>
A Deferred which will be passed a remote reference to the root
object of a PB server.
</dd>
</dl>
</dd></dl>
</td></tr></table>
<a name="getObjectRetriever"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">getObjectRetriever</span>()</span>
</h3>
<p>DEPRECATED.</p>
Get a factory which retreives a root object from its client
<dl><dt></dt><dd>
<dl><dt><b>Returns:</b></dt>
<dd>
A pair: A ClientFactory and a Deferred which will be passed a
remote reference to the root object of a PB server.x
</dd>
</dl>
</dd></dl>
</td></tr></table>
<a name="logIn"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">logIn</span>(<span class=sig-arg>authServRef</span>,
<span class=sig-arg>client</span>,
<span class=sig-arg>service</span>,
<span class=sig-arg>username</span>,
<span class=sig-arg>password</span>,
<span class=sig-arg>perspectiveName</span>=<span class=sig-default>None</span>)</span>
</h3>
DEPRECATED. I return a Deferred which will be called back with a
Perspective.
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<a name="noOperation"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">noOperation</span>(<span class="sig-vararg">*args</span>,
<span class="sig-kwarg">**kw</span>)</span>
</h3>
<p>Do nothing.</p>
Neque porro quisquam est qui dolorem ipsum quia dolor sit amet,
consectetur, adipisci velit...
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<a name="printTraceback"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">printTraceback</span>(<span class=sig-arg>tb</span>)</span>
</h3>
Print a traceback (string) to the standard log.
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<a name="respond"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">respond</span>(<span class=sig-arg>challenge</span>,
<span class=sig-arg>password</span>)</span>
</h3>
<p>Respond to a challenge.</p>
This is useful for challenge/response authentication.
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<br />
<!-- =========== START OF VARIABLE DETAILS =========== -->
<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="details">
<th colspan="2">Variable Details</th></tr>
</table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="__version__"></a>
<h3>__version__</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'1.157'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>1.157<span class="variable-quote">'</span> </pre>
</td></tr></table></dd>
</span> </dl>
</dd>
</dl></td></tr></table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="MAX_BROKER_REFS"></a>
<h3>MAX_BROKER_REFS</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>int</code>
</dd>
<span title="1024"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
1024 </pre>
</td></tr></table></dd>
</span> </dl>
</dd>
</dl></td></tr></table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="portno"></a>
<h3>portno</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>int</code>
</dd>
<span title="8787"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
8787 </pre>
</td></tr></table></dd>
</span> </dl>
</dd>
</dl></td></tr></table>
<br />
<!-- =========== START OF NAVBAR =========== -->
<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
<tr valign="center">
<th class="navbar"> <a class="navbar" href="twisted.html">Home</a> </th>
<th class="navbar"> <a class="navbar" href="trees.html">Trees</a> </th>
<th class="navbar"> <a class="navbar" href="indices.html">Index</a> </th>
<th class="navbar"> <a class="navbar" href="help.html">Help</a> </th>
<th class="navbar" align="right" width="100%">
<table border="0" cellpadding="0" cellspacing="0">
<tr><th class="navbar" align="center">
<p class="nomargin">
<a class="navbar" target="_top" href="http://twistedmatrix.com/">Twisted 1.3.0rc1</a>
</p></th></tr></table>
</th>
</tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td align="left"><font size="-2">Generated by Epydoc 2.0 on Sat May 15 20:08:16 2004</font></td>
<td align="right"><a href="http://epydoc.sourceforge.net"
><font size="-2">http://epydoc.sf.net</font></a></td>
</tr>
</table>
</body>
</html>