twisted.protocols.ftp.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.protocols.ftp</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.protocols.html">Package protocols</a> ::
Module ftp
</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.protocols.ftp.html" target="_top">no frames</a>]</font></td></tr>
</table></td>
</tr></table>
<!-- =========== START OF MODULE DESCRIPTION =========== -->
<h2 class="module">Module twisted.protocols.ftp</h2>
<p>An FTP protocol implementation</p>
Maintainer: <a href="mailto:slyphon@twistedmatrix.com">Jonathan D.
Simms</a>
<hr/>
<!-- =========== 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.protocols.ftp.DTP.html"><code>DTP</code></a></b></td>
<td>The Data Transfer Protocol for this FTP-PI instance all dtp_* methods
return a deferred</td></tr>
<tr><td width="15%">
<b><a href="twisted.protocols.ftp.DTPFactory.html"><code>DTPFactory</code></a></b></td>
<td> </td></tr>
<tr><td width="15%">
<b><a href="twisted.protocols.ftp.DTPFileSender.html"><code>DTPFileSender</code></a></b></td>
<td> </td></tr>
<tr><td width="15%">
<b><a href="twisted.protocols.ftp.FTP.html"><code>FTP</code></a></b></td>
<td>Protocol Interpreter for the File Transfer Protocol</td></tr>
<tr><td width="15%">
<b><a href="twisted.protocols.ftp.FTPAnonymousShell.html"><code>FTPAnonymousShell</code></a></b></td>
<td>Only works on POSIX platforms at the moment.</td></tr>
<tr><td width="15%">
<b><a href="twisted.protocols.ftp.FTPClient.html"><code>FTPClient</code></a></b></td>
<td>A Twisted FTP Client</td></tr>
<tr><td width="15%">
<b><a href="twisted.protocols.ftp.FTPCommand.html"><code>FTPCommand</code></a></b></td>
<td> </td></tr>
<tr><td width="15%">
<b><a href="twisted.protocols.ftp.FTPDataPortFactory.html"><code>FTPDataPortFactory</code></a></b></td>
<td>Factory for data connections that use the PORT command</td></tr>
<tr><td width="15%">
<b><a href="twisted.protocols.ftp.FTPFactory.html"><code>FTPFactory</code></a></b></td>
<td>A factory for producing ftp protocol instances</td></tr>
<tr><td width="15%">
<b><a href="twisted.protocols.ftp.FTPFileListProtocol.html"><code>FTPFileListProtocol</code></a></b></td>
<td>Parser for standard FTP file listings</td></tr>
<tr><td width="15%">
<b><a href="twisted.protocols.ftp.FTPRealm.html"><code>FTPRealm</code></a></b></td>
<td> </td></tr>
<tr><td width="15%">
<b><a href="twisted.protocols.ftp.IDTPFactory.html"><code>IDTPFactory</code></a></b></td>
<td>An interface for protocol.Factories</td></tr>
<tr><td width="15%">
<b><a href="twisted.protocols.ftp.IDTPParent.html"><code>IDTPParent</code></a></b></td>
<td>An interface for protocols that wish to use a DTP sub-protocol and
factory.</td></tr>
<tr><td width="15%">
<b><a href="twisted.protocols.ftp.IFTPShell.html"><code>IFTPShell</code></a></b></td>
<td>An abstraction of the shell commands used by the FTP protocol for a
given user account</td></tr>
<tr><td width="15%">
<b><a href="twisted.protocols.ftp.ProtocolWrapper.html"><code>ProtocolWrapper</code></a></b></td>
<td> </td></tr>
<tr><td width="15%">
<b><a href="twisted.protocols.ftp.SenderProtocol.html"><code>SenderProtocol</code></a></b></td>
<td> </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.protocols.ftp.AnonUserDeniedError.html"><code>AnonUserDeniedError</code></a></b></td>
<td>raised when an anonymous user issues a command that will alter the
filesystem</td></tr>
<tr><td width="15%">
<b><a href="twisted.protocols.ftp.AuthorizationError.html"><code>AuthorizationError</code></a></b></td>
<td>raised when client authentication fails</td></tr>
<tr><td width="15%">
<b><a href="twisted.protocols.ftp.BadCmdSequenceError.html"><code>BadCmdSequenceError</code></a></b></td>
<td>raised when a client sends a series of commands in an illogical
sequence</td></tr>
<tr><td width="15%">
<b><a href="twisted.protocols.ftp.BadResponse.html"><code>BadResponse</code></a></b></td>
<td> </td></tr>
<tr><td width="15%">
<b><a href="twisted.protocols.ftp.BogusClientError.html"><code>BogusClientError</code></a></b></td>
<td>thrown when a client other than the one we opened this DTP connection
for attempts to connect, or a client attempts to get us to connect to an
ip that differs from the one where the request came from</td></tr>
<tr><td width="15%">
<b><a href="twisted.protocols.ftp.ClientDisconnectError.html"><code>ClientDisconnectError</code></a></b></td>
<td> </td></tr>
<tr><td width="15%">
<b><a href="twisted.protocols.ftp.CmdArgSyntaxError.html"><code>CmdArgSyntaxError</code></a></b></td>
<td> </td></tr>
<tr><td width="15%">
<b><a href="twisted.protocols.ftp.CmdNotImplementedError.html"><code>CmdNotImplementedError</code></a></b></td>
<td>raised when an unimplemented command is given to the server</td></tr>
<tr><td width="15%">
<b><a href="twisted.protocols.ftp.CmdNotImplementedForArgError.html"><code>CmdNotImplementedForArgError</code></a></b></td>
<td> </td></tr>
<tr><td width="15%">
<b><a href="twisted.protocols.ftp.CmdSyntaxError.html"><code>CmdSyntaxError</code></a></b></td>
<td> </td></tr>
<tr><td width="15%">
<b><a href="twisted.protocols.ftp.CommandFailed.html"><code>CommandFailed</code></a></b></td>
<td> </td></tr>
<tr><td width="15%">
<b><a href="twisted.protocols.ftp.ConnectionLost.html"><code>ConnectionLost</code></a></b></td>
<td> </td></tr>
<tr><td width="15%">
<b><a href="twisted.protocols.ftp.DTPError.html"><code>DTPError</code></a></b></td>
<td> </td></tr>
<tr><td width="15%">
<b><a href="twisted.protocols.ftp.FileNotFoundError.html"><code>FileNotFoundError</code></a></b></td>
<td> </td></tr>
<tr><td width="15%">
<b><a href="twisted.protocols.ftp.FTPError.html"><code>FTPError</code></a></b></td>
<td> </td></tr>
<tr><td width="15%">
<b><a href="twisted.protocols.ftp.FTPTimeoutError.html"><code>FTPTimeoutError</code></a></b></td>
<td> </td></tr>
<tr><td width="15%">
<b><a href="twisted.protocols.ftp.IsNotADirectoryError.html"><code>IsNotADirectoryError</code></a></b></td>
<td>raised when RMD is called on a path that isn't a directory</td></tr>
<tr><td width="15%">
<b><a href="twisted.protocols.ftp.OperationFailedError.html"><code>OperationFailedError</code></a></b></td>
<td>raised when a command like rmd or mkdir fails for a reason other than
permissions errors</td></tr>
<tr><td width="15%">
<b><a href="twisted.protocols.ftp.PathBelowTLDError.html"><code>PathBelowTLDError</code></a></b></td>
<td> </td></tr>
<tr><td width="15%">
<b><a href="twisted.protocols.ftp.PermissionDeniedError.html"><code>PermissionDeniedError</code></a></b></td>
<td> </td></tr>
<tr><td width="15%">
<b><a href="twisted.protocols.ftp.TLDNotSetInRealmError.html"><code>TLDNotSetInRealmError</code></a></b></td>
<td>raised if the tld (root) directory for the FTPRealm was not set before
requestAvatar was called</td></tr>
<tr><td width="15%">
<b><a href="twisted.protocols.ftp.UnexpectedResponse.html"><code>UnexpectedResponse</code></a></b></td>
<td> </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="_callWithDefault"></a><span class="summary-sig"><span class="summary-sig-name">_callWithDefault</span>(<span class=summary-sig-arg>default</span>,
<span class=summary-sig-arg>_f</span>,
<span class="summary-sig-vararg">*_a</span>,
<span class="summary-sig-kwarg">**_kw</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.protocols.ftp.html#_getFPName" class="summary-sig-name"><code>_getFPName</code></a>(<span class=summary-sig-arg>fp</span>)</span></code>
<br />
returns a file object's name attr if it has one, otherwise it returns
"<string>"</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.ftp.html#_memberGIDs" class="summary-sig-name"><code>_memberGIDs</code></a>(<span class=summary-sig-arg>gid</span>)</span></code>
<br />
returns a list of all gid's that are a member of group with id</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.ftp.html#_testPermissions" class="summary-sig-name"><code>_testPermissions</code></a>(<span class=summary-sig-arg>uid</span>,
<span class=summary-sig-arg>gid</span>,
<span class=summary-sig-arg>spath</span>,
<span class=summary-sig-arg>mode</span>)</span></code>
<br />
checks to see if uid has proper permissions to access path with
mode</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="cleanPath"></a><span class="summary-sig"><span class="summary-sig-name">cleanPath</span>(<span class=summary-sig-arg>path</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="debugDeferred"></a><span class="summary-sig"><span class="summary-sig-name">debugDeferred</span>(<span class=summary-sig-arg>self</span>,
<span class="summary-sig-vararg">*_</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.protocols.ftp.html#decodeHostPort" class="summary-sig-name"><code>decodeHostPort</code></a>(<span class=summary-sig-arg>line</span>)</span></code>
<br />
Decode an FTP response specifying a host and port.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.ftp.html#parsePWDResponse" class="summary-sig-name"><code>parsePWDResponse</code></a>(<span class=summary-sig-arg>response</span>)</span></code>
<br />
Returns the path from a response to a PWD command.</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.protocols.ftp.html#BAD_CMD_SEQ"><code>BAD_CMD_SEQ</code></a></b> = <span title="'503'"><code><span class="variable-quote">'</span>503<span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.ftp.html#CANT_OPEN_DATA_CNX"><code>CANT_OPEN_DATA_CNX</code></a></b> = <span title="'425'"><code><span class="variable-quote">'</span>425<span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.ftp.html#CLOSING_DATA_CNX"><code>CLOSING_DATA_CNX</code></a></b> = <span title="'226'"><code><span class="variable-quote">'</span>226<span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.ftp.html#CMD_NOT_IMPLMNTD"><code>CMD_NOT_IMPLMNTD</code></a></b> = <span title="'502'"><code><span class="variable-quote">'</span>502<span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.ftp.html#CMD_NOT_IMPLMNTD_FOR_PARAM"><code>CMD_NOT_IMPLMNTD_FOR_PARAM</code></a></b> = <span title="'504'"><code><span class="variable-quote">'</span>504<span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.ftp.html#CMD_NOT_IMPLMNTD_SUPERFLUOUS"><code>CMD_NOT_IMPLMNTD_SUPERFLUOUS</code></a></b> = <span title="'202'"><code><span class="variable-quote">'</span>202<span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.ftp.html#CMD_OK"><code>CMD_OK</code></a></b> = <span title="'200.1'"><code><span class="variable-quote">'</span>200.1<span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.ftp.html#CNX_CLOSED_TXFR_ABORTED"><code>CNX_CLOSED_TXFR_ABORTED</code></a></b> = <span title="'426'"><code><span class="variable-quote">'</span>426<span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.ftp.html#DATA_CNX_ALREADY_OPEN_START_XFR"><code>DATA_CNX_ALREADY_OPEN_START_XFR</code></a></b> = <span title="'125'"><code><span class="variable-quote">'</span>125<span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.ftp.html#DATA_CNX_OPEN_NO_XFR_IN_PROGRESS"><code>DATA_CNX_OPEN_NO_XFR_IN_PROGRESS</code></a></b> = <span title="'225'"><code><span class="variable-quote">'</span>225<span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.ftp.html#DIR_STATUS"><code>DIR_STATUS</code></a></b> = <span title="'212'"><code><span class="variable-quote">'</span>212<span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.ftp.html#ENDLN"><code>ENDLN</code></a></b> = <span title="'\r\n'"><code><span class="variable-quote">'</span>\r\n<span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.ftp.html#ENTERING_EPSV_MODE"><code>ENTERING_EPSV_MODE</code></a></b> = <span title="'229'"><code><span class="variable-quote">'</span>229<span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.ftp.html#ENTERING_PASV_MODE"><code>ENTERING_PASV_MODE</code></a></b> = <span title="'227'"><code><span class="variable-quote">'</span>227<span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.ftp.html#ENTERING_PORT_MODE"><code>ENTERING_PORT_MODE</code></a></b> = <span title="'200.3'"><code><span class="variable-quote">'</span>200.3<span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.ftp.html#EXCEEDED_STORAGE_ALLOC"><code>EXCEEDED_STORAGE_ALLOC</code></a></b> = <span title="'552'"><code><span class="variable-quote">'</span>552<span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.ftp.html#FILE_STATUS"><code>FILE_STATUS</code></a></b> = <span title="'213'"><code><span class="variable-quote">'</span>213<span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.ftp.html#FILE_STATUS_OK_OPEN_DATA_CNX"><code>FILE_STATUS_OK_OPEN_DATA_CNX</code></a></b> = <span title="'150'"><code><span class="variable-quote">'</span>150<span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.ftp.html#FILENAME_NOT_ALLOWED"><code>FILENAME_NOT_ALLOWED</code></a></b> = <span title="'553'"><code><span class="variable-quote">'</span>553<span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.ftp.html#GOODBYE_MSG"><code>GOODBYE_MSG</code></a></b> = <span title="'221'"><code><span class="variable-quote">'</span>221<span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.ftp.html#HELP_MSG"><code>HELP_MSG</code></a></b> = <span title="'214'"><code><span class="variable-quote">'</span>214<span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.ftp.html#NAME_SYS_TYPE"><code>NAME_SYS_TYPE</code></a></b> = <span title="'215'"><code><span class="variable-quote">'</span>215<span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.ftp.html#NEED_ACCT_FOR_LOGIN"><code>NEED_ACCT_FOR_LOGIN</code></a></b> = <span title="'332'"><code><span class="variable-quote">'</span>332<span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.ftp.html#NEED_ACCT_FOR_STOR"><code>NEED_ACCT_FOR_STOR</code></a></b> = <span title="'532'"><code><span class="variable-quote">'</span>532<span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.ftp.html#PAGE_TYPE_UNK"><code>PAGE_TYPE_UNK</code></a></b> = <span title="'551'"><code><span class="variable-quote">'</span>551<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.protocols.ftp.html#PASV"><code>PASV</code></a></b> = <span title="1">1 </span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
<td><b><a href="twisted.protocols.ftp.html#PORT"><code>PORT</code></a></b> = <span title="2">2 </span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.ftp.html#PWD_REPLY"><code>PWD_REPLY</code></a></b> = <span title="'257'"><code><span class="variable-quote">'</span>257<span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.ftp.html#REQ_ACTN_ABRTD_FILE_UNAVAIL"><code>REQ_ACTN_ABRTD_FILE_UNAVAIL</code></a></b> = <span title="'450'"><code><span class="variable-quote">'</span>450<span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.ftp.html#REQ_ACTN_ABRTD_INSUFF_STORAGE"><code>REQ_ACTN_ABRTD_INSUFF_STORAGE</code></a></b> = <span title="'452'"><code><span class="variable-quote">'</span>452<span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.ftp.html#REQ_ACTN_ABRTD_LOCAL_ERR"><code>REQ_ACTN_ABRTD_LOCAL_ERR</code></a></b> = <span title="'451'"><code><span class="variable-quote">'</span>451<span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.ftp.html#REQ_ACTN_NOT_TAKEN"><code>REQ_ACTN_NOT_TAKEN</code></a></b> = <span title="'550.5'"><code><span class="variable-quote">'</span>550.5<span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.ftp.html#REQ_FILE_ACTN_COMPLETED_OK"><code>REQ_FILE_ACTN_COMPLETED_OK</code></a></b> = <span title="'250'"><code><span class="variable-quote">'</span>250<span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.ftp.html#REQ_FILE_ACTN_PENDING_FURTHER_INFO"><code>REQ_FILE_ACTN_PENDING_FURTHER_INFO</code></a></b> = <span title="'350'"><code><span class="variable-quote">'</span>350<span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>dict</code></font></td>
<td><b><a href="twisted.protocols.ftp.html#RESPONSE"><code>RESPONSE</code></a></b> = <span title="{'150': '150 File status okay; about to open data connection.', '214': '214 help: %s', '215': '215 UNIX Type: L8', '212': '212 %s', '213': '213 %s', '211': '211 system status reply', '425': "425 Can't open data connection.", '200.1': '200 Command OK', '200.3': '200 PORT OK', '200.2': '200 Type set to %s.', '331.1': '331 Password required for %s.', '220.2': '220-Welcome, ask your doctor if twistedmatrix.com is right for you!\r\n220 Features p .', '220.1': '220 Service ready', '100': '110 MARK yyyy-mmmm', '257': '257 "%s" is current directory.', '331.2': '331 Guest login ok, type your email a..."><code>{'150': '150 File status okay; about to open <span class="variable-ellipsis">...</span></code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.ftp.html#RESTART_MARKER_REPLY"><code>RESTART_MARKER_REPLY</code></a></b> = <span title="'100'"><code><span class="variable-quote">'</span>100<span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.ftp.html#SERVICE_READY_IN_N_MINUTES"><code>SERVICE_READY_IN_N_MINUTES</code></a></b> = <span title="'120'"><code><span class="variable-quote">'</span>120<span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.ftp.html#SVC_CLOSING_CTRL_CNX"><code>SVC_CLOSING_CTRL_CNX</code></a></b> = <span title="'221'"><code><span class="variable-quote">'</span>221<span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.ftp.html#SVC_NOT_AVAIL_CLOSING_CTRL_CNX"><code>SVC_NOT_AVAIL_CLOSING_CTRL_CNX</code></a></b> = <span title="'421.1'"><code><span class="variable-quote">'</span>421.1<span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.ftp.html#SVC_READY_FOR_NEW_USER"><code>SVC_READY_FOR_NEW_USER</code></a></b> = <span title="'220.1'"><code><span class="variable-quote">'</span>220.1<span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.ftp.html#SYNTAX_ERR"><code>SYNTAX_ERR</code></a></b> = <span title="'500'"><code><span class="variable-quote">'</span>500<span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.ftp.html#SYNTAX_ERR_IN_ARGS"><code>SYNTAX_ERR_IN_ARGS</code></a></b> = <span title="'501'"><code><span class="variable-quote">'</span>501<span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.ftp.html#SYS_STATUS_OR_HELP_REPLY"><code>SYS_STATUS_OR_HELP_REPLY</code></a></b> = <span title="'211'"><code><span class="variable-quote">'</span>211<span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.ftp.html#TOO_MANY_CONNECTIONS"><code>TOO_MANY_CONNECTIONS</code></a></b> = <span title="'421.2'"><code><span class="variable-quote">'</span>421.2<span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.ftp.html#TXFR_COMPLETE_OK"><code>TXFR_COMPLETE_OK</code></a></b> = <span title="'226'"><code><span class="variable-quote">'</span>226<span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.ftp.html#TYPE_SET_OK"><code>TYPE_SET_OK</code></a></b> = <span title="'200.2'"><code><span class="variable-quote">'</span>200.2<span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.ftp.html#WELCOME_MSG"><code>WELCOME_MSG</code></a></b> = <span title="'220.2'"><code><span class="variable-quote">'</span>220.2<span class="variable-quote">'</span> </code>
</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="_getFPName"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">_getFPName</span>(<span class=sig-arg>fp</span>)</span>
</h3>
returns a file object's name attr if it has one, otherwise it
returns "<string>"
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<a name="_memberGIDs"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">_memberGIDs</span>(<span class=sig-arg>gid</span>)</span>
</h3>
returns a list of all gid's that are a member of group with id
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<a name="_testPermissions"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">_testPermissions</span>(<span class=sig-arg>uid</span>,
<span class=sig-arg>gid</span>,
<span class=sig-arg>spath</span>,
<span class=sig-arg>mode</span>=<span class=sig-default>'r'</span>)</span>
</h3>
checks to see if uid has proper permissions to access path with
mode
<dl><dt></dt><dd>
<dl><dt><b>Parameters:</b></dt>
<dd><code><b>uid</b></code> -
numeric user id
<br /><i>
(type=int)</i>
<dd><code><b>gid</b></code> -
numeric group id
<br /><i>
(type=int)</i>
<dd><code><b>spath</b></code> -
the path on the server to test
<br /><i>
(type=string)</i>
<dd><code><b>mode</b></code> -
'r' or 'w' (read or write)
<br /><i>
(type=string)</i>
</dd>
</dl>
<dl><dt><b>Returns:</b></dt>
<dd>
a True if the uid can access path
</dd>
</dl>
</dd></dl>
</td></tr></table>
<a name="decodeHostPort"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">decodeHostPort</span>(<span class=sig-arg>line</span>)</span>
</h3>
Decode an FTP response specifying a host and port.
<dl><dt></dt><dd>
<dl><dt><b>Returns:</b></dt>
<dd>
a 2-tuple of (host, port).
</dd>
</dl>
</dd></dl>
</td></tr></table>
<a name="parsePWDResponse"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">parsePWDResponse</span>(<span class=sig-arg>response</span>)</span>
</h3>
<p>Returns the path from a response to a PWD command.</p>
Responses typically look like:
<pre class="literalblock">
257 "/home/andrew" is current directory.
</pre>
<p>For this example, I will return <code>'/home/andrew'</code>.</p>
If I can't find the path, I return <code>None</code>.
<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="BAD_CMD_SEQ"></a>
<h3>BAD_CMD_SEQ</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'503'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>503<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="CANT_OPEN_DATA_CNX"></a>
<h3>CANT_OPEN_DATA_CNX</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'425'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>425<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="CLOSING_DATA_CNX"></a>
<h3>CLOSING_DATA_CNX</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'226'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>226<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="CMD_NOT_IMPLMNTD"></a>
<h3>CMD_NOT_IMPLMNTD</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'502'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>502<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="CMD_NOT_IMPLMNTD_FOR_PARAM"></a>
<h3>CMD_NOT_IMPLMNTD_FOR_PARAM</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'504'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>504<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="CMD_NOT_IMPLMNTD_SUPERFLUOUS"></a>
<h3>CMD_NOT_IMPLMNTD_SUPERFLUOUS</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'202'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>202<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="CMD_OK"></a>
<h3>CMD_OK</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'200.1'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>200.1<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="CNX_CLOSED_TXFR_ABORTED"></a>
<h3>CNX_CLOSED_TXFR_ABORTED</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'426'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>426<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="DATA_CNX_ALREADY_OPEN_START_XFR"></a>
<h3>DATA_CNX_ALREADY_OPEN_START_XFR</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'125'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>125<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="DATA_CNX_OPEN_NO_XFR_IN_PROGRESS"></a>
<h3>DATA_CNX_OPEN_NO_XFR_IN_PROGRESS</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'225'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>225<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="DIR_STATUS"></a>
<h3>DIR_STATUS</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'212'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>212<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="ENDLN"></a>
<h3>ENDLN</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'\r\n'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'''</span>\r
<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="ENTERING_EPSV_MODE"></a>
<h3>ENTERING_EPSV_MODE</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'229'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>229<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="ENTERING_PASV_MODE"></a>
<h3>ENTERING_PASV_MODE</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'227'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>227<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="ENTERING_PORT_MODE"></a>
<h3>ENTERING_PORT_MODE</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'200.3'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>200.3<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="EXCEEDED_STORAGE_ALLOC"></a>
<h3>EXCEEDED_STORAGE_ALLOC</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'552'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>552<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="FILE_STATUS"></a>
<h3>FILE_STATUS</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'213'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>213<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="FILE_STATUS_OK_OPEN_DATA_CNX"></a>
<h3>FILE_STATUS_OK_OPEN_DATA_CNX</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'150'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>150<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="FILENAME_NOT_ALLOWED"></a>
<h3>FILENAME_NOT_ALLOWED</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'553'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>553<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="GOODBYE_MSG"></a>
<h3>GOODBYE_MSG</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'221'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>221<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="HELP_MSG"></a>
<h3>HELP_MSG</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'214'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>214<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="NAME_SYS_TYPE"></a>
<h3>NAME_SYS_TYPE</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'215'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>215<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="NEED_ACCT_FOR_LOGIN"></a>
<h3>NEED_ACCT_FOR_LOGIN</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'332'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>332<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="NEED_ACCT_FOR_STOR"></a>
<h3>NEED_ACCT_FOR_STOR</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'532'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>532<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="PAGE_TYPE_UNK"></a>
<h3>PAGE_TYPE_UNK</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'551'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>551<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="PASV"></a>
<h3>PASV</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>int</code>
</dd>
<span title="1"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
1 </pre>
</td></tr></table></dd>
</span> </dl>
</dd>
</dl></td></tr></table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="PORT"></a>
<h3>PORT</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>int</code>
</dd>
<span title="2"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
2 </pre>
</td></tr></table></dd>
</span> </dl>
</dd>
</dl></td></tr></table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="PWD_REPLY"></a>
<h3>PWD_REPLY</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'257'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>257<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="REQ_ACTN_ABRTD_FILE_UNAVAIL"></a>
<h3>REQ_ACTN_ABRTD_FILE_UNAVAIL</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'450'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>450<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="REQ_ACTN_ABRTD_INSUFF_STORAGE"></a>
<h3>REQ_ACTN_ABRTD_INSUFF_STORAGE</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'452'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>452<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="REQ_ACTN_ABRTD_LOCAL_ERR"></a>
<h3>REQ_ACTN_ABRTD_LOCAL_ERR</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'451'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>451<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="REQ_ACTN_NOT_TAKEN"></a>
<h3>REQ_ACTN_NOT_TAKEN</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'550.5'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>550.5<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="REQ_FILE_ACTN_COMPLETED_OK"></a>
<h3>REQ_FILE_ACTN_COMPLETED_OK</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'250'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>250<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="REQ_FILE_ACTN_PENDING_FURTHER_INFO"></a>
<h3>REQ_FILE_ACTN_PENDING_FURTHER_INFO</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'350'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>350<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="RESPONSE"></a>
<h3>RESPONSE</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>dict</code>
</dd>
<span title="{'150': '150 File status okay; about to open data connection.', '214': '214 help: %s', '215': '215 UNIX Type: L8', '212': '212 %s', '213': '213 %s', '211': '211 system status reply', '425': "425 Can't open data connection.", '200.1': '200 Command OK', '200.3': '200 PORT OK', '200.2': '200 Type set to %s.', '331.1': '331 Password required for %s.', '220.2': '220-Welcome, ask your doctor if twistedmatrix.com is right for you!\r\n220 Features p .', '220.1': '220 Service ready', '100': '110 MARK yyyy-mmmm', '257': '257 "%s" is current directory.', '331.2': '331 Guest login ok, type your email a..."> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
{'100': '110 MARK yyyy-mmmm',
'120': '120 service ready in %s minutes',
'125': '125 Data connection already open, starting transfer',
'150': '150 File status okay; about to open data connection.',
'200.1': '200 Command OK',
'200.2': '200 Type set to %s.',
'200.3': '200 PORT OK',
'202': '202 command not implemented, superfluous at this site',
<span class="variable-ellipsis">...</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="RESTART_MARKER_REPLY"></a>
<h3>RESTART_MARKER_REPLY</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'100'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>100<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="SERVICE_READY_IN_N_MINUTES"></a>
<h3>SERVICE_READY_IN_N_MINUTES</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'120'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>120<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="SVC_CLOSING_CTRL_CNX"></a>
<h3>SVC_CLOSING_CTRL_CNX</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'221'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>221<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="SVC_NOT_AVAIL_CLOSING_CTRL_CNX"></a>
<h3>SVC_NOT_AVAIL_CLOSING_CTRL_CNX</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'421.1'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>421.1<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="SVC_READY_FOR_NEW_USER"></a>
<h3>SVC_READY_FOR_NEW_USER</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'220.1'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>220.1<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="SYNTAX_ERR"></a>
<h3>SYNTAX_ERR</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'500'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>500<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="SYNTAX_ERR_IN_ARGS"></a>
<h3>SYNTAX_ERR_IN_ARGS</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'501'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>501<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="SYS_STATUS_OR_HELP_REPLY"></a>
<h3>SYS_STATUS_OR_HELP_REPLY</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'211'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>211<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="TOO_MANY_CONNECTIONS"></a>
<h3>TOO_MANY_CONNECTIONS</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'421.2'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>421.2<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="TXFR_COMPLETE_OK"></a>
<h3>TXFR_COMPLETE_OK</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'226'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>226<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="TYPE_SET_OK"></a>
<h3>TYPE_SET_OK</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'200.2'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>200.2<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="WELCOME_MSG"></a>
<h3>WELCOME_MSG</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'220.2'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>220.2<span class="variable-quote">'</span> </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:07:44 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>