diff options
Diffstat (limited to 'html/sphinx/index.html')
-rw-r--r-- | html/sphinx/index.html | 871 |
1 files changed, 0 insertions, 871 deletions
diff --git a/html/sphinx/index.html b/html/sphinx/index.html deleted file mode 100644 index c9db009..0000000 --- a/html/sphinx/index.html +++ /dev/null @@ -1,871 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> - - -<html xmlns="http://www.w3.org/1999/xhtml"> - <head> - <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - - <title>TFTPy — TFTPy 0.6.3 documentation</title> - - <link rel="stylesheet" href="_static/default.css" type="text/css" /> - <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: './', - VERSION: '0.6.3', - COLLAPSE_INDEX: false, - FILE_SUFFIX: '.html', - HAS_SOURCE: true - }; - </script> - <script type="text/javascript" src="_static/jquery.js"></script> - <script type="text/javascript" src="_static/underscore.js"></script> - <script type="text/javascript" src="_static/doctools.js"></script> - <link rel="top" title="TFTPy 0.6.3 documentation" href="#" /> - </head> - <body> - <div class="related"> - <h3>Navigation</h3> - <ul> - <li class="right" style="margin-right: 10px"> - <a href="genindex.html" title="General Index" - accesskey="I">index</a></li> - <li class="right" > - <a href="py-modindex.html" title="Python Module Index" - >modules</a> |</li> - <li><a href="#">TFTPy 0.6.3 documentation</a> »</li> - </ul> - </div> - - <div class="document"> - <div class="documentwrapper"> - <div class="bodywrapper"> - <div class="body"> - - <div class="section" id="tftpy"> -<h1>TFTPy<a class="headerlink" href="#tftpy" title="Permalink to this headline">¶</a></h1> -<p>TFTPy is a pure python TFTP implementation.</p> -<div class="toctree-wrapper compound"> -<ul class="simple"> -</ul> -</div> -<ul class="simple"> -<li><a class="reference internal" href="genindex.html"><em>Index</em></a></li> -<li><a class="reference internal" href="py-modindex.html"><em>Module Index</em></a></li> -<li><a class="reference internal" href="search.html"><em>Search Page</em></a></li> -</ul> -</div> -<div class="section" id="requirements"> -<h1>Requirements<a class="headerlink" href="#requirements" title="Permalink to this headline">¶</a></h1> -<p>Python 2.3+, I think. I haven’t tested in Python 2.3 in a while but it should -still work. Let me know if it doesn’t.</p> -</div> -<div class="section" id="installation"> -<h1>Installation<a class="headerlink" href="#installation" title="Permalink to this headline">¶</a></h1> -<p>If you download the source distribution, you can simply use distutils to -install, via:</p> -<div class="highlight-python"><div class="highlight"><pre>python setup.py build -python setup.py install -</pre></div> -</div> -<p>Or, as this has been uploaded to pypi, you can use easy_install or pip:</p> -<div class="highlight-python"><div class="highlight"><pre>easy_install tftpy -pip install tftpy -</pre></div> -</div> -<p>Once installed you should have the sample client and server scripts in bin, -and you should be able to import the <cite>tftpy</cite> module.</p> -</div> -<div class="section" id="examples"> -<h1>Examples<a class="headerlink" href="#examples" title="Permalink to this headline">¶</a></h1> -<p>The simplest tftp client:</p> -<div class="highlight-python"><div class="highlight"><pre><span class="kn">import</span> <span class="nn">tftpy</span> - -<span class="n">client</span> <span class="o">=</span> <span class="n">tftpy</span><span class="o">.</span><span class="n">TftpClient</span><span class="p">(</span><span class="s">'tftp.digitaltorque.ca'</span><span class="p">,</span> <span class="mi">69</span><span class="p">)</span> -<span class="n">client</span><span class="o">.</span><span class="n">download</span><span class="p">(</span><span class="s">'remote_filename'</span><span class="p">,</span> <span class="s">'local_filename'</span><span class="p">)</span> -</pre></div> -</div> -<p>The simplest tftp server:</p> -<div class="highlight-python"><div class="highlight"><pre><span class="kn">import</span> <span class="nn">tftpy</span> - -<span class="n">server</span> <span class="o">=</span> <span class="n">tftpy</span><span class="o">.</span><span class="n">TftpServer</span><span class="p">(</span><span class="s">'/tftpboot'</span><span class="p">)</span> -<span class="n">server</span><span class="o">.</span><span class="n">listen</span><span class="p">(</span><span class="s">'0.0.0.0'</span><span class="p">,</span> <span class="mi">69</span><span class="p">)</span> -</pre></div> -</div> -<p>See the sample client and server for slightly more complex examples.</p> -</div> -<div class="section" id="api-documentation"> -<h1>API Documentation<a class="headerlink" href="#api-documentation" title="Permalink to this headline">¶</a></h1> -<div class="section" id="front-end-modules"> -<h2>Front-end Modules<a class="headerlink" href="#front-end-modules" title="Permalink to this headline">¶</a></h2> -<p>These modules are the ones that you will need to use directly to implement a -TFTP client or server.</p> -<div class="section" id="module-tftpy"> -<span id="the-tftpy-module"></span><h3>The <a class="reference internal" href="#module-tftpy" title="tftpy"><tt class="xref py py-mod docutils literal"><span class="pre">tftpy</span></tt></a> Module<a class="headerlink" href="#module-tftpy" title="Permalink to this headline">¶</a></h3> -<p>This library implements the tftp protocol, based on rfc 1350. -<a class="reference external" href="http://www.faqs.org/rfcs/rfc1350.html">http://www.faqs.org/rfcs/rfc1350.html</a> -At the moment it implements only a client class, but will include a server, -with support for variable block sizes.</p> -<p>As a client of tftpy, this is the only module that you should need to import -directly. The TftpClient and TftpServer classes can be reached through it.</p> -</div> -<div class="section" id="module-tftpy.TftpClient"> -<span id="the-tftpclient-module"></span><h3>The <cite>TftpClient</cite> Module<a class="headerlink" href="#module-tftpy.TftpClient" title="Permalink to this headline">¶</a></h3> -<p>This module implements the TFTP Client functionality. Instantiate an -instance of the client, and then use its upload or download method. Logging is -performed via a standard logging object set in TftpShared.</p> -<dl class="class"> -<dt id="tftpy.TftpClient.TftpClient"> -<em class="property">class </em><tt class="descclassname">tftpy.TftpClient.</tt><tt class="descname">TftpClient</tt><big>(</big><em>host</em>, <em>port</em>, <em>options={}</em><big>)</big><a class="headerlink" href="#tftpy.TftpClient.TftpClient" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <a class="reference internal" href="#tftpy.TftpPacketTypes.TftpSession" title="tftpy.TftpPacketTypes.TftpSession"><tt class="xref py py-class docutils literal"><span class="pre">tftpy.TftpPacketTypes.TftpSession</span></tt></a></p> -<p>This class is an implementation of a tftp client. Once instantiated, a -download can be initiated via the download() method, or an upload via the -upload() method.</p> -<dl class="method"> -<dt id="tftpy.TftpClient.TftpClient.download"> -<tt class="descname">download</tt><big>(</big><em>filename</em>, <em>output</em>, <em>packethook=None</em>, <em>timeout=5</em><big>)</big><a class="headerlink" href="#tftpy.TftpClient.TftpClient.download" title="Permalink to this definition">¶</a></dt> -<dd><p>This method initiates a tftp download from the configured remote -host, requesting the filename passed. It writes the file to output, -which can be a file-like object or a path to a local file. If a -packethook is provided, it must be a function that takes a single -parameter, which will be a copy of each DAT packet received in the -form of a TftpPacketDAT object. The timeout parameter may be used to -override the default SOCK_TIMEOUT setting, which is the amount of time -that the client will wait for a receive packet to arrive.</p> -<p>Note: If output is a hyphen, stdout is used.</p> -</dd></dl> - -<dl class="method"> -<dt id="tftpy.TftpClient.TftpClient.upload"> -<tt class="descname">upload</tt><big>(</big><em>filename</em>, <em>input</em>, <em>packethook=None</em>, <em>timeout=5</em><big>)</big><a class="headerlink" href="#tftpy.TftpClient.TftpClient.upload" title="Permalink to this definition">¶</a></dt> -<dd><p>This method initiates a tftp upload to the configured remote host, -uploading the filename passed. It reads the file from input, which -can be a file-like object or a path to a local file. If a packethook -is provided, it must be a function that takes a single parameter, -which will be a copy of each DAT packet sent in the form of a -TftpPacketDAT object. The timeout parameter may be used to override -the default SOCK_TIMEOUT setting, which is the amount of time that -the client will wait for a DAT packet to be ACKd by the server.</p> -<p>Note: If input is a hyphen, stdin is used.</p> -</dd></dl> - -</dd></dl> - -</div> -<div class="section" id="module-tftpy.TftpServer"> -<span id="the-tftpserver-module"></span><h3>The <cite>TftpServer</cite> Module<a class="headerlink" href="#module-tftpy.TftpServer" title="Permalink to this headline">¶</a></h3> -<p>This module implements the TFTP Server functionality. Instantiate an -instance of the server, and then run the listen() method to listen for client -requests. Logging is performed via a standard logging object set in -TftpShared.</p> -<dl class="class"> -<dt id="tftpy.TftpServer.TftpServer"> -<em class="property">class </em><tt class="descclassname">tftpy.TftpServer.</tt><tt class="descname">TftpServer</tt><big>(</big><em>tftproot='/tftpboot'</em>, <em>dyn_file_func=None</em><big>)</big><a class="headerlink" href="#tftpy.TftpServer.TftpServer" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <a class="reference internal" href="#tftpy.TftpPacketTypes.TftpSession" title="tftpy.TftpPacketTypes.TftpSession"><tt class="xref py py-class docutils literal"><span class="pre">tftpy.TftpPacketTypes.TftpSession</span></tt></a></p> -<p>This class implements a tftp server object. Run the listen() method to -listen for client requests. It takes two optional arguments. tftproot is -the path to the tftproot directory to serve files from and/or write them -to. dyn_file_func is a callable that must return a file-like object to -read from during downloads. This permits the serving of dynamic -content.</p> -<dl class="method"> -<dt id="tftpy.TftpServer.TftpServer.listen"> -<tt class="descname">listen</tt><big>(</big><em>listenip=''</em>, <em>listenport=69</em>, <em>timeout=5</em><big>)</big><a class="headerlink" href="#tftpy.TftpServer.TftpServer.listen" title="Permalink to this definition">¶</a></dt> -<dd><p>Start a server listening on the supplied interface and port. This -defaults to INADDR_ANY (all interfaces) and UDP port 69. You can also -supply a different socket timeout value, if desired.</p> -</dd></dl> - -<dl class="method"> -<dt id="tftpy.TftpServer.TftpServer.stop"> -<tt class="descname">stop</tt><big>(</big><em>now=False</em><big>)</big><a class="headerlink" href="#tftpy.TftpServer.TftpServer.stop" title="Permalink to this definition">¶</a></dt> -<dd><p>Stop the server gracefully. Do not take any new transfers, -but complete the existing ones. If force is True, drop everything -and stop. Note, immediately will not interrupt the select loop, it -will happen when the server returns on ready data, or a timeout. -ie. SOCK_TIMEOUT</p> -</dd></dl> - -</dd></dl> - -</div> -</div> -<div class="section" id="back-end-modules"> -<h2>Back-end Modules<a class="headerlink" href="#back-end-modules" title="Permalink to this headline">¶</a></h2> -<div class="section" id="module-tftpy.TftpPacketFactory"> -<span id="the-tftppacketfactory-module"></span><h3>The <cite>TftpPacketFactory</cite> Module<a class="headerlink" href="#module-tftpy.TftpPacketFactory" title="Permalink to this headline">¶</a></h3> -<p>This module implements the TftpPacketFactory class, which can take a binary -buffer, and return the appropriate TftpPacket object to represent it, via the -parse() method.</p> -<dl class="class"> -<dt id="tftpy.TftpPacketFactory.TftpPacketFactory"> -<em class="property">class </em><tt class="descclassname">tftpy.TftpPacketFactory.</tt><tt class="descname">TftpPacketFactory</tt><a class="headerlink" href="#tftpy.TftpPacketFactory.TftpPacketFactory" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">object</span></tt></p> -<p>This class generates TftpPacket objects. It is responsible for parsing -raw buffers off of the wire and returning objects representing them, via -the parse() method.</p> -<dl class="method"> -<dt id="tftpy.TftpPacketFactory.TftpPacketFactory.parse"> -<tt class="descname">parse</tt><big>(</big><em>buffer</em><big>)</big><a class="headerlink" href="#tftpy.TftpPacketFactory.TftpPacketFactory.parse" title="Permalink to this definition">¶</a></dt> -<dd><p>This method is used to parse an existing datagram into its -corresponding TftpPacket object. The buffer is the raw bytes off of -the network.</p> -</dd></dl> - -</dd></dl> - -</div> -<div class="section" id="module-tftpy.TftpPacketTypes"> -<span id="the-tftppackettypes-module"></span><h3>The <cite>TftpPacketTypes</cite> Module<a class="headerlink" href="#module-tftpy.TftpPacketTypes" title="Permalink to this headline">¶</a></h3> -<p>This module implements the packet types of TFTP itself, and the -corresponding encode and decode methods for them.</p> -<dl class="class"> -<dt id="tftpy.TftpPacketTypes.TftpPacket"> -<em class="property">class </em><tt class="descclassname">tftpy.TftpPacketTypes.</tt><tt class="descname">TftpPacket</tt><a class="headerlink" href="#tftpy.TftpPacketTypes.TftpPacket" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">object</span></tt></p> -<p>This class is the parent class of all tftp packet classes. It is an -abstract class, providing an interface, and should not be instantiated -directly.</p> -<dl class="method"> -<dt id="tftpy.TftpPacketTypes.TftpPacket.decode"> -<tt class="descname">decode</tt><big>(</big><big>)</big><a class="headerlink" href="#tftpy.TftpPacketTypes.TftpPacket.decode" title="Permalink to this definition">¶</a></dt> -<dd><p>The decode method of a TftpPacket takes a buffer off of the wire in -network-byte order, and decodes it, populating internal properties as -appropriate. This can only be done once the first 2-byte opcode has -already been decoded, but the data section does include the entire -datagram.</p> -<p>This is an abstract method.</p> -</dd></dl> - -<dl class="method"> -<dt id="tftpy.TftpPacketTypes.TftpPacket.encode"> -<tt class="descname">encode</tt><big>(</big><big>)</big><a class="headerlink" href="#tftpy.TftpPacketTypes.TftpPacket.encode" title="Permalink to this definition">¶</a></dt> -<dd><p>The encode method of a TftpPacket takes keyword arguments specific -to the type of packet, and packs an appropriate buffer in network-byte -order suitable for sending over the wire.</p> -<p>This is an abstract method.</p> -</dd></dl> - -</dd></dl> - -<dl class="class"> -<dt id="tftpy.TftpPacketTypes.TftpPacketACK"> -<em class="property">class </em><tt class="descclassname">tftpy.TftpPacketTypes.</tt><tt class="descname">TftpPacketACK</tt><a class="headerlink" href="#tftpy.TftpPacketTypes.TftpPacketACK" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <a class="reference internal" href="#tftpy.TftpPacketTypes.TftpPacket" title="tftpy.TftpPacketTypes.TftpPacket"><tt class="xref py py-class docutils literal"><span class="pre">tftpy.TftpPacketTypes.TftpPacket</span></tt></a></p> -<div class="highlight-python"><div class="highlight"><pre> 2 bytes 2 bytes - ------------------- -ACK | 04 | Block # | - -------------------- -</pre></div> -</div> -</dd></dl> - -<dl class="class"> -<dt id="tftpy.TftpPacketTypes.TftpPacketDAT"> -<em class="property">class </em><tt class="descclassname">tftpy.TftpPacketTypes.</tt><tt class="descname">TftpPacketDAT</tt><a class="headerlink" href="#tftpy.TftpPacketTypes.TftpPacketDAT" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <a class="reference internal" href="#tftpy.TftpPacketTypes.TftpPacket" title="tftpy.TftpPacketTypes.TftpPacket"><tt class="xref py py-class docutils literal"><span class="pre">tftpy.TftpPacketTypes.TftpPacket</span></tt></a></p> -<div class="highlight-python"><div class="highlight"><pre> 2 bytes 2 bytes n bytes - --------------------------------- -DATA | 03 | Block # | Data | - --------------------------------- -</pre></div> -</div> -<dl class="method"> -<dt id="tftpy.TftpPacketTypes.TftpPacketDAT.decode"> -<tt class="descname">decode</tt><big>(</big><big>)</big><a class="headerlink" href="#tftpy.TftpPacketTypes.TftpPacketDAT.decode" title="Permalink to this definition">¶</a></dt> -<dd><p>Decode self.buffer into instance variables. It returns self for -easy method chaining.</p> -</dd></dl> - -<dl class="method"> -<dt id="tftpy.TftpPacketTypes.TftpPacketDAT.encode"> -<tt class="descname">encode</tt><big>(</big><big>)</big><a class="headerlink" href="#tftpy.TftpPacketTypes.TftpPacketDAT.encode" title="Permalink to this definition">¶</a></dt> -<dd><p>Encode the DAT packet. This method populates self.buffer, and -returns self for easy method chaining.</p> -</dd></dl> - -</dd></dl> - -<dl class="class"> -<dt id="tftpy.TftpPacketTypes.TftpPacketERR"> -<em class="property">class </em><tt class="descclassname">tftpy.TftpPacketTypes.</tt><tt class="descname">TftpPacketERR</tt><a class="headerlink" href="#tftpy.TftpPacketTypes.TftpPacketERR" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <a class="reference internal" href="#tftpy.TftpPacketTypes.TftpPacket" title="tftpy.TftpPacketTypes.TftpPacket"><tt class="xref py py-class docutils literal"><span class="pre">tftpy.TftpPacketTypes.TftpPacket</span></tt></a></p> -<div class="highlight-python"><div class="highlight"><pre> 2 bytes 2 bytes string 1 byte - ---------------------------------------- -ERROR | 05 | ErrorCode | ErrMsg | 0 | - ---------------------------------------- - -Error Codes - -Value Meaning - -0 Not defined, see error message (if any). -1 File not found. -2 Access violation. -3 Disk full or allocation exceeded. -4 Illegal TFTP operation. -5 Unknown transfer ID. -6 File already exists. -7 No such user. -8 Failed to negotiate options -</pre></div> -</div> -<dl class="method"> -<dt id="tftpy.TftpPacketTypes.TftpPacketERR.decode"> -<tt class="descname">decode</tt><big>(</big><big>)</big><a class="headerlink" href="#tftpy.TftpPacketTypes.TftpPacketERR.decode" title="Permalink to this definition">¶</a></dt> -<dd><p>Decode self.buffer, populating instance variables and return self.</p> -</dd></dl> - -<dl class="method"> -<dt id="tftpy.TftpPacketTypes.TftpPacketERR.encode"> -<tt class="descname">encode</tt><big>(</big><big>)</big><a class="headerlink" href="#tftpy.TftpPacketTypes.TftpPacketERR.encode" title="Permalink to this definition">¶</a></dt> -<dd><p>Encode the DAT packet based on instance variables, populating -self.buffer, returning self.</p> -</dd></dl> - -</dd></dl> - -<dl class="class"> -<dt id="tftpy.TftpPacketTypes.TftpPacketInitial"> -<em class="property">class </em><tt class="descclassname">tftpy.TftpPacketTypes.</tt><tt class="descname">TftpPacketInitial</tt><a class="headerlink" href="#tftpy.TftpPacketTypes.TftpPacketInitial" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <a class="reference internal" href="#tftpy.TftpPacketTypes.TftpPacket" title="tftpy.TftpPacketTypes.TftpPacket"><tt class="xref py py-class docutils literal"><span class="pre">tftpy.TftpPacketTypes.TftpPacket</span></tt></a>, <a class="reference internal" href="#tftpy.TftpPacketTypes.TftpPacketWithOptions" title="tftpy.TftpPacketTypes.TftpPacketWithOptions"><tt class="xref py py-class docutils literal"><span class="pre">tftpy.TftpPacketTypes.TftpPacketWithOptions</span></tt></a></p> -<p>This class is a common parent class for the RRQ and WRQ packets, as -they share quite a bit of code.</p> -<dl class="method"> -<dt id="tftpy.TftpPacketTypes.TftpPacketInitial.encode"> -<tt class="descname">encode</tt><big>(</big><big>)</big><a class="headerlink" href="#tftpy.TftpPacketTypes.TftpPacketInitial.encode" title="Permalink to this definition">¶</a></dt> -<dd><p>Encode the packet’s buffer from the instance variables.</p> -</dd></dl> - -</dd></dl> - -<dl class="class"> -<dt id="tftpy.TftpPacketTypes.TftpPacketOACK"> -<em class="property">class </em><tt class="descclassname">tftpy.TftpPacketTypes.</tt><tt class="descname">TftpPacketOACK</tt><a class="headerlink" href="#tftpy.TftpPacketTypes.TftpPacketOACK" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <a class="reference internal" href="#tftpy.TftpPacketTypes.TftpPacket" title="tftpy.TftpPacketTypes.TftpPacket"><tt class="xref py py-class docutils literal"><span class="pre">tftpy.TftpPacketTypes.TftpPacket</span></tt></a>, <a class="reference internal" href="#tftpy.TftpPacketTypes.TftpPacketWithOptions" title="tftpy.TftpPacketTypes.TftpPacketWithOptions"><tt class="xref py py-class docutils literal"><span class="pre">tftpy.TftpPacketTypes.TftpPacketWithOptions</span></tt></a></p> -<div class="highlight-python"><div class="highlight"><pre>+-------+---~~---+---+---~~---+---+---~~---+---+---~~---+---+ -| opc | opt1 | 0 | value1 | 0 | optN | 0 | valueN | 0 | -+-------+---~~---+---+---~~---+---+---~~---+---+---~~---+---+ -</pre></div> -</div> -<dl class="method"> -<dt id="tftpy.TftpPacketTypes.TftpPacketOACK.match_options"> -<tt class="descname">match_options</tt><big>(</big><em>options</em><big>)</big><a class="headerlink" href="#tftpy.TftpPacketTypes.TftpPacketOACK.match_options" title="Permalink to this definition">¶</a></dt> -<dd><p>This method takes a set of options, and tries to match them with -its own. It can accept some changes in those options from the server as -part of a negotiation. Changed or unchanged, it will return a dict of -the options so that the session can update itself to the negotiated -options.</p> -</dd></dl> - -</dd></dl> - -<dl class="class"> -<dt id="tftpy.TftpPacketTypes.TftpPacketRRQ"> -<em class="property">class </em><tt class="descclassname">tftpy.TftpPacketTypes.</tt><tt class="descname">TftpPacketRRQ</tt><a class="headerlink" href="#tftpy.TftpPacketTypes.TftpPacketRRQ" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <a class="reference internal" href="#tftpy.TftpPacketTypes.TftpPacketInitial" title="tftpy.TftpPacketTypes.TftpPacketInitial"><tt class="xref py py-class docutils literal"><span class="pre">tftpy.TftpPacketTypes.TftpPacketInitial</span></tt></a></p> -<div class="highlight-python"><div class="highlight"><pre> 2 bytes string 1 byte string 1 byte - ----------------------------------------------- -RRQ/ | 01/02 | Filename | 0 | Mode | 0 | -WRQ ----------------------------------------------- -</pre></div> -</div> -</dd></dl> - -<dl class="class"> -<dt id="tftpy.TftpPacketTypes.TftpPacketWRQ"> -<em class="property">class </em><tt class="descclassname">tftpy.TftpPacketTypes.</tt><tt class="descname">TftpPacketWRQ</tt><a class="headerlink" href="#tftpy.TftpPacketTypes.TftpPacketWRQ" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <a class="reference internal" href="#tftpy.TftpPacketTypes.TftpPacketInitial" title="tftpy.TftpPacketTypes.TftpPacketInitial"><tt class="xref py py-class docutils literal"><span class="pre">tftpy.TftpPacketTypes.TftpPacketInitial</span></tt></a></p> -<div class="highlight-python"><div class="highlight"><pre> 2 bytes string 1 byte string 1 byte - ----------------------------------------------- -RRQ/ | 01/02 | Filename | 0 | Mode | 0 | -WRQ ----------------------------------------------- -</pre></div> -</div> -</dd></dl> - -<dl class="class"> -<dt id="tftpy.TftpPacketTypes.TftpPacketWithOptions"> -<em class="property">class </em><tt class="descclassname">tftpy.TftpPacketTypes.</tt><tt class="descname">TftpPacketWithOptions</tt><a class="headerlink" href="#tftpy.TftpPacketTypes.TftpPacketWithOptions" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">object</span></tt></p> -<p>This class exists to permit some TftpPacket subclasses to share code -regarding options handling. It does not inherit from TftpPacket, as the -goal is just to share code here, and not cause diamond inheritance.</p> -<dl class="method"> -<dt id="tftpy.TftpPacketTypes.TftpPacketWithOptions.decode_options"> -<tt class="descname">decode_options</tt><big>(</big><em>buffer</em><big>)</big><a class="headerlink" href="#tftpy.TftpPacketTypes.TftpPacketWithOptions.decode_options" title="Permalink to this definition">¶</a></dt> -<dd><p>This method decodes the section of the buffer that contains an -unknown number of options. It returns a dictionary of option names and -values.</p> -</dd></dl> - -</dd></dl> - -<dl class="class"> -<dt id="tftpy.TftpPacketTypes.TftpSession"> -<em class="property">class </em><tt class="descclassname">tftpy.TftpPacketTypes.</tt><tt class="descname">TftpSession</tt><a class="headerlink" href="#tftpy.TftpPacketTypes.TftpSession" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">object</span></tt></p> -<p>This class is the base class for the tftp client and server. Any shared -code should be in this class.</p> -</dd></dl> - -</div> -<div class="section" id="module-tftpy.TftpShared"> -<span id="the-tftpshared-module"></span><h3>The <cite>TftpShared</cite> Module<a class="headerlink" href="#module-tftpy.TftpShared" title="Permalink to this headline">¶</a></h3> -<p>This module holds all objects shared by all other modules in tftpy.</p> -<dl class="class"> -<dt id="tftpy.TftpShared.TftpErrors"> -<em class="property">class </em><tt class="descclassname">tftpy.TftpShared.</tt><tt class="descname">TftpErrors</tt><a class="headerlink" href="#tftpy.TftpShared.TftpErrors" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">object</span></tt></p> -<p>This class is a convenience for defining the common tftp error codes, -and making them more readable in the code.</p> -</dd></dl> - -<dl class="exception"> -<dt id="tftpy.TftpShared.TftpException"> -<em class="property">exception </em><tt class="descclassname">tftpy.TftpShared.</tt><tt class="descname">TftpException</tt><a class="headerlink" href="#tftpy.TftpShared.TftpException" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">exceptions.Exception</span></tt></p> -<p>This class is the parent class of all exceptions regarding the handling -of the TFTP protocol.</p> -</dd></dl> - -<dl class="exception"> -<dt id="tftpy.TftpShared.TftpTimeout"> -<em class="property">exception </em><tt class="descclassname">tftpy.TftpShared.</tt><tt class="descname">TftpTimeout</tt><a class="headerlink" href="#tftpy.TftpShared.TftpTimeout" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <a class="reference internal" href="#tftpy.TftpShared.TftpException" title="tftpy.TftpShared.TftpException"><tt class="xref py py-class docutils literal"><span class="pre">tftpy.TftpShared.TftpException</span></tt></a></p> -<p>This class represents a timeout error waiting for a response from the -other end.</p> -</dd></dl> - -<dl class="function"> -<dt id="tftpy.TftpShared.setLogLevel"> -<tt class="descclassname">tftpy.TftpShared.</tt><tt class="descname">setLogLevel</tt><big>(</big><em>level</em><big>)</big><a class="headerlink" href="#tftpy.TftpShared.setLogLevel" title="Permalink to this definition">¶</a></dt> -<dd><p>This function is a utility function for setting the internal log level. -The log level defaults to logging.NOTSET, so unwanted output to stdout is -not created.</p> -</dd></dl> - -<dl class="function"> -<dt id="tftpy.TftpShared.tftpassert"> -<tt class="descclassname">tftpy.TftpShared.</tt><tt class="descname">tftpassert</tt><big>(</big><em>condition</em>, <em>msg</em><big>)</big><a class="headerlink" href="#tftpy.TftpShared.tftpassert" title="Permalink to this definition">¶</a></dt> -<dd><p>This function is a simple utility that will check the condition -passed for a false state. If it finds one, it throws a TftpException -with the message passed. This just makes the code throughout cleaner -by refactoring.</p> -</dd></dl> - -</div> -<div class="section" id="module-tftpy.TftpContexts"> -<span id="the-tftpcontexts-module"></span><h3>The <cite>TftpContexts</cite> Module<a class="headerlink" href="#module-tftpy.TftpContexts" title="Permalink to this headline">¶</a></h3> -<p>This module implements all contexts for state handling during uploads and -downloads, the main interface to which being the TftpContext base class.</p> -<p>The concept is simple. Each context object represents a single upload or -download, and the state object in the context object represents the current -state of that transfer. The state object has a handle() method that expects -the next packet in the transfer, and returns a state object until the transfer -is complete, at which point it returns None. That is, unless there is a fatal -error, in which case a TftpException is returned instead.</p> -<dl class="class"> -<dt id="tftpy.TftpContexts.TftpContext"> -<em class="property">class </em><tt class="descclassname">tftpy.TftpContexts.</tt><tt class="descname">TftpContext</tt><big>(</big><em>host</em>, <em>port</em>, <em>timeout</em><big>)</big><a class="headerlink" href="#tftpy.TftpContexts.TftpContext" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">object</span></tt></p> -<p>The base class of the contexts.</p> -<dl class="method"> -<dt id="tftpy.TftpContexts.TftpContext.checkTimeout"> -<tt class="descname">checkTimeout</tt><big>(</big><em>now</em><big>)</big><a class="headerlink" href="#tftpy.TftpContexts.TftpContext.checkTimeout" title="Permalink to this definition">¶</a></dt> -<dd><p>Compare current time with last_update time, and raise an exception -if we’re over the timeout time.</p> -</dd></dl> - -<dl class="method"> -<dt id="tftpy.TftpContexts.TftpContext.cycle"> -<tt class="descname">cycle</tt><big>(</big><big>)</big><a class="headerlink" href="#tftpy.TftpContexts.TftpContext.cycle" title="Permalink to this definition">¶</a></dt> -<dd><p>Here we wait for a response from the server after sending it -something, and dispatch appropriate action to that response.</p> -</dd></dl> - -<dl class="method"> -<dt id="tftpy.TftpContexts.TftpContext.end"> -<tt class="descname">end</tt><big>(</big><big>)</big><a class="headerlink" href="#tftpy.TftpContexts.TftpContext.end" title="Permalink to this definition">¶</a></dt> -<dd><p>Perform session cleanup, since the end method should always be -called explicitely by the calling code, this works better than the -destructor.</p> -</dd></dl> - -<dl class="method"> -<dt id="tftpy.TftpContexts.TftpContext.getBlocksize"> -<tt class="descname">getBlocksize</tt><big>(</big><big>)</big><a class="headerlink" href="#tftpy.TftpContexts.TftpContext.getBlocksize" title="Permalink to this definition">¶</a></dt> -<dd><p>Fetch the current blocksize for this session.</p> -</dd></dl> - -<dl class="method"> -<dt id="tftpy.TftpContexts.TftpContext.gethost"> -<tt class="descname">gethost</tt><big>(</big><big>)</big><a class="headerlink" href="#tftpy.TftpContexts.TftpContext.gethost" title="Permalink to this definition">¶</a></dt> -<dd><p>Simple getter method for use in a property.</p> -</dd></dl> - -<dl class="attribute"> -<dt id="tftpy.TftpContexts.TftpContext.host"> -<tt class="descname">host</tt><a class="headerlink" href="#tftpy.TftpContexts.TftpContext.host" title="Permalink to this definition">¶</a></dt> -<dd><p>Simple getter method for use in a property.</p> -</dd></dl> - -<dl class="method"> -<dt id="tftpy.TftpContexts.TftpContext.sethost"> -<tt class="descname">sethost</tt><big>(</big><em>host</em><big>)</big><a class="headerlink" href="#tftpy.TftpContexts.TftpContext.sethost" title="Permalink to this definition">¶</a></dt> -<dd><p>Setter method that also sets the address property as a result -of the host that is set.</p> -</dd></dl> - -</dd></dl> - -<dl class="class"> -<dt id="tftpy.TftpContexts.TftpContextClientDownload"> -<em class="property">class </em><tt class="descclassname">tftpy.TftpContexts.</tt><tt class="descname">TftpContextClientDownload</tt><big>(</big><em>host</em>, <em>port</em>, <em>filename</em>, <em>output</em>, <em>options</em>, <em>packethook</em>, <em>timeout</em><big>)</big><a class="headerlink" href="#tftpy.TftpContexts.TftpContextClientDownload" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <a class="reference internal" href="#tftpy.TftpContexts.TftpContext" title="tftpy.TftpContexts.TftpContext"><tt class="xref py py-class docutils literal"><span class="pre">tftpy.TftpContexts.TftpContext</span></tt></a></p> -<p>The download context for the client during a download. -Note: If output is a hyphen, then the output will be sent to stdout.</p> -<dl class="method"> -<dt id="tftpy.TftpContexts.TftpContextClientDownload.end"> -<tt class="descname">end</tt><big>(</big><big>)</big><a class="headerlink" href="#tftpy.TftpContexts.TftpContextClientDownload.end" title="Permalink to this definition">¶</a></dt> -<dd><p>Finish up the context.</p> -</dd></dl> - -<dl class="method"> -<dt id="tftpy.TftpContexts.TftpContextClientDownload.start"> -<tt class="descname">start</tt><big>(</big><big>)</big><a class="headerlink" href="#tftpy.TftpContexts.TftpContextClientDownload.start" title="Permalink to this definition">¶</a></dt> -<dd><p>Initiate the download.</p> -</dd></dl> - -</dd></dl> - -<dl class="class"> -<dt id="tftpy.TftpContexts.TftpContextClientUpload"> -<em class="property">class </em><tt class="descclassname">tftpy.TftpContexts.</tt><tt class="descname">TftpContextClientUpload</tt><big>(</big><em>host</em>, <em>port</em>, <em>filename</em>, <em>input</em>, <em>options</em>, <em>packethook</em>, <em>timeout</em><big>)</big><a class="headerlink" href="#tftpy.TftpContexts.TftpContextClientUpload" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <a class="reference internal" href="#tftpy.TftpContexts.TftpContext" title="tftpy.TftpContexts.TftpContext"><tt class="xref py py-class docutils literal"><span class="pre">tftpy.TftpContexts.TftpContext</span></tt></a></p> -<p>The upload context for the client during an upload. -Note: If input is a hyphen, then we will use stdin.</p> -<dl class="method"> -<dt id="tftpy.TftpContexts.TftpContextClientUpload.end"> -<tt class="descname">end</tt><big>(</big><big>)</big><a class="headerlink" href="#tftpy.TftpContexts.TftpContextClientUpload.end" title="Permalink to this definition">¶</a></dt> -<dd><p>Finish up the context.</p> -</dd></dl> - -</dd></dl> - -<dl class="class"> -<dt id="tftpy.TftpContexts.TftpContextServer"> -<em class="property">class </em><tt class="descclassname">tftpy.TftpContexts.</tt><tt class="descname">TftpContextServer</tt><big>(</big><em>host</em>, <em>port</em>, <em>timeout</em>, <em>root</em>, <em>dyn_file_func=None</em><big>)</big><a class="headerlink" href="#tftpy.TftpContexts.TftpContextServer" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <a class="reference internal" href="#tftpy.TftpContexts.TftpContext" title="tftpy.TftpContexts.TftpContext"><tt class="xref py py-class docutils literal"><span class="pre">tftpy.TftpContexts.TftpContext</span></tt></a></p> -<p>The context for the server.</p> -<dl class="method"> -<dt id="tftpy.TftpContexts.TftpContextServer.end"> -<tt class="descname">end</tt><big>(</big><big>)</big><a class="headerlink" href="#tftpy.TftpContexts.TftpContextServer.end" title="Permalink to this definition">¶</a></dt> -<dd><p>Finish up the context.</p> -</dd></dl> - -<dl class="method"> -<dt id="tftpy.TftpContexts.TftpContextServer.start"> -<tt class="descname">start</tt><big>(</big><em>buffer</em><big>)</big><a class="headerlink" href="#tftpy.TftpContexts.TftpContextServer.start" title="Permalink to this definition">¶</a></dt> -<dd><p>Start the state cycle. Note that the server context receives an -initial packet in its start method. Also note that the server does not -loop on cycle(), as it expects the TftpServer object to manage -that.</p> -</dd></dl> - -</dd></dl> - -<dl class="class"> -<dt id="tftpy.TftpContexts.TftpMetrics"> -<em class="property">class </em><tt class="descclassname">tftpy.TftpContexts.</tt><tt class="descname">TftpMetrics</tt><a class="headerlink" href="#tftpy.TftpContexts.TftpMetrics" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">object</span></tt></p> -<p>A class representing metrics of the transfer.</p> -<dl class="method"> -<dt id="tftpy.TftpContexts.TftpMetrics.add_dup"> -<tt class="descname">add_dup</tt><big>(</big><em>pkt</em><big>)</big><a class="headerlink" href="#tftpy.TftpContexts.TftpMetrics.add_dup" title="Permalink to this definition">¶</a></dt> -<dd><p>This method adds a dup for a packet to the metrics.</p> -</dd></dl> - -</dd></dl> - -</div> -<div class="section" id="module-tftpy.TftpStates"> -<span id="the-tftpstates-module"></span><h3>The <cite>TftpStates</cite> Module<a class="headerlink" href="#module-tftpy.TftpStates" title="Permalink to this headline">¶</a></h3> -<p>This module implements all state handling during uploads and downloads, the -main interface to which being the TftpState base class.</p> -<p>The concept is simple. Each context object represents a single upload or -download, and the state object in the context object represents the current -state of that transfer. The state object has a handle() method that expects -the next packet in the transfer, and returns a state object until the transfer -is complete, at which point it returns None. That is, unless there is a fatal -error, in which case a TftpException is returned instead.</p> -<dl class="class"> -<dt id="tftpy.TftpStates.TftpServerState"> -<em class="property">class </em><tt class="descclassname">tftpy.TftpStates.</tt><tt class="descname">TftpServerState</tt><big>(</big><em>context</em><big>)</big><a class="headerlink" href="#tftpy.TftpStates.TftpServerState" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <a class="reference internal" href="#tftpy.TftpStates.TftpState" title="tftpy.TftpStates.TftpState"><tt class="xref py py-class docutils literal"><span class="pre">tftpy.TftpStates.TftpState</span></tt></a></p> -<p>The base class for server states.</p> -<dl class="method"> -<dt id="tftpy.TftpStates.TftpServerState.serverInitial"> -<tt class="descname">serverInitial</tt><big>(</big><em>pkt</em>, <em>raddress</em>, <em>rport</em><big>)</big><a class="headerlink" href="#tftpy.TftpStates.TftpServerState.serverInitial" title="Permalink to this definition">¶</a></dt> -<dd><p>This method performs initial setup for a server context transfer, -put here to refactor code out of the TftpStateServerRecvRRQ and -TftpStateServerRecvWRQ classes, since their initial setup is -identical. The method returns a boolean, sendoack, to indicate whether -it is required to send an OACK to the client.</p> -</dd></dl> - -</dd></dl> - -<dl class="class"> -<dt id="tftpy.TftpStates.TftpState"> -<em class="property">class </em><tt class="descclassname">tftpy.TftpStates.</tt><tt class="descname">TftpState</tt><big>(</big><em>context</em><big>)</big><a class="headerlink" href="#tftpy.TftpStates.TftpState" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">object</span></tt></p> -<p>The base class for the states.</p> -<dl class="method"> -<dt id="tftpy.TftpStates.TftpState.handle"> -<tt class="descname">handle</tt><big>(</big><em>pkt</em>, <em>raddress</em>, <em>rport</em><big>)</big><a class="headerlink" href="#tftpy.TftpStates.TftpState.handle" title="Permalink to this definition">¶</a></dt> -<dd><p>An abstract method for handling a packet. It is expected to return -a TftpState object, either itself or a new state.</p> -</dd></dl> - -<dl class="method"> -<dt id="tftpy.TftpStates.TftpState.handleDat"> -<tt class="descname">handleDat</tt><big>(</big><em>pkt</em><big>)</big><a class="headerlink" href="#tftpy.TftpStates.TftpState.handleDat" title="Permalink to this definition">¶</a></dt> -<dd><p>This method handles a DAT packet during a client download, or a -server upload.</p> -</dd></dl> - -<dl class="method"> -<dt id="tftpy.TftpStates.TftpState.handleOACK"> -<tt class="descname">handleOACK</tt><big>(</big><em>pkt</em><big>)</big><a class="headerlink" href="#tftpy.TftpStates.TftpState.handleOACK" title="Permalink to this definition">¶</a></dt> -<dd><p>This method handles an OACK from the server, syncing any accepted -options.</p> -</dd></dl> - -<dl class="method"> -<dt id="tftpy.TftpStates.TftpState.resendLast"> -<tt class="descname">resendLast</tt><big>(</big><big>)</big><a class="headerlink" href="#tftpy.TftpStates.TftpState.resendLast" title="Permalink to this definition">¶</a></dt> -<dd><p>Resend the last sent packet due to a timeout.</p> -</dd></dl> - -<dl class="method"> -<dt id="tftpy.TftpStates.TftpState.returnSupportedOptions"> -<tt class="descname">returnSupportedOptions</tt><big>(</big><em>options</em><big>)</big><a class="headerlink" href="#tftpy.TftpStates.TftpState.returnSupportedOptions" title="Permalink to this definition">¶</a></dt> -<dd><p>This method takes a requested options list from a client, and -returns the ones that are supported.</p> -</dd></dl> - -<dl class="method"> -<dt id="tftpy.TftpStates.TftpState.sendACK"> -<tt class="descname">sendACK</tt><big>(</big><em>blocknumber=None</em><big>)</big><a class="headerlink" href="#tftpy.TftpStates.TftpState.sendACK" title="Permalink to this definition">¶</a></dt> -<dd><p>This method sends an ack packet to the block number specified. If -none is specified, it defaults to the next_block property in the -parent context.</p> -</dd></dl> - -<dl class="method"> -<dt id="tftpy.TftpStates.TftpState.sendDAT"> -<tt class="descname">sendDAT</tt><big>(</big><big>)</big><a class="headerlink" href="#tftpy.TftpStates.TftpState.sendDAT" title="Permalink to this definition">¶</a></dt> -<dd><p>This method sends the next DAT packet based on the data in the -context. It returns a boolean indicating whether the transfer is -finished.</p> -</dd></dl> - -<dl class="method"> -<dt id="tftpy.TftpStates.TftpState.sendError"> -<tt class="descname">sendError</tt><big>(</big><em>errorcode</em><big>)</big><a class="headerlink" href="#tftpy.TftpStates.TftpState.sendError" title="Permalink to this definition">¶</a></dt> -<dd><p>This method uses the socket passed, and uses the errorcode to -compose and send an error packet.</p> -</dd></dl> - -<dl class="method"> -<dt id="tftpy.TftpStates.TftpState.sendOACK"> -<tt class="descname">sendOACK</tt><big>(</big><big>)</big><a class="headerlink" href="#tftpy.TftpStates.TftpState.sendOACK" title="Permalink to this definition">¶</a></dt> -<dd><p>This method sends an OACK packet with the options from the current -context.</p> -</dd></dl> - -</dd></dl> - -<dl class="class"> -<dt id="tftpy.TftpStates.TftpStateExpectACK"> -<em class="property">class </em><tt class="descclassname">tftpy.TftpStates.</tt><tt class="descname">TftpStateExpectACK</tt><big>(</big><em>context</em><big>)</big><a class="headerlink" href="#tftpy.TftpStates.TftpStateExpectACK" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <a class="reference internal" href="#tftpy.TftpStates.TftpState" title="tftpy.TftpStates.TftpState"><tt class="xref py py-class docutils literal"><span class="pre">tftpy.TftpStates.TftpState</span></tt></a></p> -<p>This class represents the state of the transfer when a DAT was just -sent, and we are waiting for an ACK from the server. This class is the -same one used by the client during the upload, and the server during the -download.</p> -<dl class="method"> -<dt id="tftpy.TftpStates.TftpStateExpectACK.handle"> -<tt class="descname">handle</tt><big>(</big><em>pkt</em>, <em>raddress</em>, <em>rport</em><big>)</big><a class="headerlink" href="#tftpy.TftpStates.TftpStateExpectACK.handle" title="Permalink to this definition">¶</a></dt> -<dd><p>Handle a packet, hopefully an ACK since we just sent a DAT.</p> -</dd></dl> - -</dd></dl> - -<dl class="class"> -<dt id="tftpy.TftpStates.TftpStateExpectDAT"> -<em class="property">class </em><tt class="descclassname">tftpy.TftpStates.</tt><tt class="descname">TftpStateExpectDAT</tt><big>(</big><em>context</em><big>)</big><a class="headerlink" href="#tftpy.TftpStates.TftpStateExpectDAT" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <a class="reference internal" href="#tftpy.TftpStates.TftpState" title="tftpy.TftpStates.TftpState"><tt class="xref py py-class docutils literal"><span class="pre">tftpy.TftpStates.TftpState</span></tt></a></p> -<p>Just sent an ACK packet. Waiting for DAT.</p> -<dl class="method"> -<dt id="tftpy.TftpStates.TftpStateExpectDAT.handle"> -<tt class="descname">handle</tt><big>(</big><em>pkt</em>, <em>raddress</em>, <em>rport</em><big>)</big><a class="headerlink" href="#tftpy.TftpStates.TftpStateExpectDAT.handle" title="Permalink to this definition">¶</a></dt> -<dd><p>Handle the packet in response to an ACK, which should be a DAT.</p> -</dd></dl> - -</dd></dl> - -<dl class="class"> -<dt id="tftpy.TftpStates.TftpStateSentRRQ"> -<em class="property">class </em><tt class="descclassname">tftpy.TftpStates.</tt><tt class="descname">TftpStateSentRRQ</tt><big>(</big><em>context</em><big>)</big><a class="headerlink" href="#tftpy.TftpStates.TftpStateSentRRQ" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <a class="reference internal" href="#tftpy.TftpStates.TftpState" title="tftpy.TftpStates.TftpState"><tt class="xref py py-class docutils literal"><span class="pre">tftpy.TftpStates.TftpState</span></tt></a></p> -<p>Just sent an RRQ packet.</p> -<dl class="method"> -<dt id="tftpy.TftpStates.TftpStateSentRRQ.handle"> -<tt class="descname">handle</tt><big>(</big><em>pkt</em>, <em>raddress</em>, <em>rport</em><big>)</big><a class="headerlink" href="#tftpy.TftpStates.TftpStateSentRRQ.handle" title="Permalink to this definition">¶</a></dt> -<dd><p>Handle the packet in response to an RRQ to the server.</p> -</dd></dl> - -</dd></dl> - -<dl class="class"> -<dt id="tftpy.TftpStates.TftpStateSentWRQ"> -<em class="property">class </em><tt class="descclassname">tftpy.TftpStates.</tt><tt class="descname">TftpStateSentWRQ</tt><big>(</big><em>context</em><big>)</big><a class="headerlink" href="#tftpy.TftpStates.TftpStateSentWRQ" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <a class="reference internal" href="#tftpy.TftpStates.TftpState" title="tftpy.TftpStates.TftpState"><tt class="xref py py-class docutils literal"><span class="pre">tftpy.TftpStates.TftpState</span></tt></a></p> -<p>Just sent an WRQ packet for an upload.</p> -<dl class="method"> -<dt id="tftpy.TftpStates.TftpStateSentWRQ.handle"> -<tt class="descname">handle</tt><big>(</big><em>pkt</em>, <em>raddress</em>, <em>rport</em><big>)</big><a class="headerlink" href="#tftpy.TftpStates.TftpStateSentWRQ.handle" title="Permalink to this definition">¶</a></dt> -<dd><p>Handle a packet we just received.</p> -</dd></dl> - -</dd></dl> - -<dl class="class"> -<dt id="tftpy.TftpStates.TftpStateServerRecvRRQ"> -<em class="property">class </em><tt class="descclassname">tftpy.TftpStates.</tt><tt class="descname">TftpStateServerRecvRRQ</tt><big>(</big><em>context</em><big>)</big><a class="headerlink" href="#tftpy.TftpStates.TftpStateServerRecvRRQ" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <a class="reference internal" href="#tftpy.TftpStates.TftpServerState" title="tftpy.TftpStates.TftpServerState"><tt class="xref py py-class docutils literal"><span class="pre">tftpy.TftpStates.TftpServerState</span></tt></a></p> -<p>This class represents the state of the TFTP server when it has just -received an RRQ packet.</p> -<dl class="method"> -<dt id="tftpy.TftpStates.TftpStateServerRecvRRQ.handle"> -<tt class="descname">handle</tt><big>(</big><em>pkt</em>, <em>raddress</em>, <em>rport</em><big>)</big><a class="headerlink" href="#tftpy.TftpStates.TftpStateServerRecvRRQ.handle" title="Permalink to this definition">¶</a></dt> -<dd><p>Handle an initial RRQ packet as a server.</p> -</dd></dl> - -</dd></dl> - -<dl class="class"> -<dt id="tftpy.TftpStates.TftpStateServerRecvWRQ"> -<em class="property">class </em><tt class="descclassname">tftpy.TftpStates.</tt><tt class="descname">TftpStateServerRecvWRQ</tt><big>(</big><em>context</em><big>)</big><a class="headerlink" href="#tftpy.TftpStates.TftpStateServerRecvWRQ" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <a class="reference internal" href="#tftpy.TftpStates.TftpServerState" title="tftpy.TftpStates.TftpServerState"><tt class="xref py py-class docutils literal"><span class="pre">tftpy.TftpStates.TftpServerState</span></tt></a></p> -<p>This class represents the state of the TFTP server when it has just -received a WRQ packet.</p> -<dl class="method"> -<dt id="tftpy.TftpStates.TftpStateServerRecvWRQ.handle"> -<tt class="descname">handle</tt><big>(</big><em>pkt</em>, <em>raddress</em>, <em>rport</em><big>)</big><a class="headerlink" href="#tftpy.TftpStates.TftpStateServerRecvWRQ.handle" title="Permalink to this definition">¶</a></dt> -<dd><p>Handle an initial WRQ packet as a server.</p> -</dd></dl> - -<dl class="method"> -<dt id="tftpy.TftpStates.TftpStateServerRecvWRQ.make_subdirs"> -<tt class="descname">make_subdirs</tt><big>(</big><big>)</big><a class="headerlink" href="#tftpy.TftpStates.TftpStateServerRecvWRQ.make_subdirs" title="Permalink to this definition">¶</a></dt> -<dd><p>The purpose of this method is to, if necessary, create all of the -subdirectories leading up to the file to the written.</p> -</dd></dl> - -</dd></dl> - -<dl class="class"> -<dt id="tftpy.TftpStates.TftpStateServerStart"> -<em class="property">class </em><tt class="descclassname">tftpy.TftpStates.</tt><tt class="descname">TftpStateServerStart</tt><big>(</big><em>context</em><big>)</big><a class="headerlink" href="#tftpy.TftpStates.TftpStateServerStart" title="Permalink to this definition">¶</a></dt> -<dd><p>Bases: <a class="reference internal" href="#tftpy.TftpStates.TftpState" title="tftpy.TftpStates.TftpState"><tt class="xref py py-class docutils literal"><span class="pre">tftpy.TftpStates.TftpState</span></tt></a></p> -<p>The start state for the server. This is a transitory state since at -this point we don’t know if we’re handling an upload or a download. We -will commit to one of them once we interpret the initial packet.</p> -<dl class="method"> -<dt id="tftpy.TftpStates.TftpStateServerStart.handle"> -<tt class="descname">handle</tt><big>(</big><em>pkt</em>, <em>raddress</em>, <em>rport</em><big>)</big><a class="headerlink" href="#tftpy.TftpStates.TftpStateServerStart.handle" title="Permalink to this definition">¶</a></dt> -<dd><p>Handle a packet we just received.</p> -</dd></dl> - -</dd></dl> - -</div> -</div> -</div> - - - </div> - </div> - </div> - <div class="sphinxsidebar"> - <div class="sphinxsidebarwrapper"> - <h3><a href="#">Table Of Contents</a></h3> - <ul> -<li><a class="reference internal" href="#">TFTPy</a></li> -<li><a class="reference internal" href="#requirements">Requirements</a></li> -<li><a class="reference internal" href="#installation">Installation</a></li> -<li><a class="reference internal" href="#examples">Examples</a></li> -<li><a class="reference internal" href="#api-documentation">API Documentation</a><ul> -<li><a class="reference internal" href="#front-end-modules">Front-end Modules</a><ul> -<li><a class="reference internal" href="#module-tftpy">The <tt class="docutils literal"><span class="pre">tftpy</span></tt> Module</a></li> -<li><a class="reference internal" href="#module-tftpy.TftpClient">The <cite>TftpClient</cite> Module</a></li> -<li><a class="reference internal" href="#module-tftpy.TftpServer">The <cite>TftpServer</cite> Module</a></li> -</ul> -</li> -<li><a class="reference internal" href="#back-end-modules">Back-end Modules</a><ul> -<li><a class="reference internal" href="#module-tftpy.TftpPacketFactory">The <cite>TftpPacketFactory</cite> Module</a></li> -<li><a class="reference internal" href="#module-tftpy.TftpPacketTypes">The <cite>TftpPacketTypes</cite> Module</a></li> -<li><a class="reference internal" href="#module-tftpy.TftpShared">The <cite>TftpShared</cite> Module</a></li> -<li><a class="reference internal" href="#module-tftpy.TftpContexts">The <cite>TftpContexts</cite> Module</a></li> -<li><a class="reference internal" href="#module-tftpy.TftpStates">The <cite>TftpStates</cite> Module</a></li> -</ul> -</li> -</ul> -</li> -</ul> - - <h3>This Page</h3> - <ul class="this-page-menu"> - <li><a href="_sources/index.txt" - rel="nofollow">Show Source</a></li> - </ul> -<div id="searchbox" style="display: none"> - <h3>Quick search</h3> - <form class="search" action="search.html" method="get"> - <input type="text" name="q" /> - <input type="submit" value="Go" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> - <p class="searchtip" style="font-size: 90%"> - Enter search terms or a module, class or function name. - </p> -</div> -<script type="text/javascript">$('#searchbox').show(0);</script> - </div> - </div> - <div class="clearer"></div> - </div> - <div class="related"> - <h3>Navigation</h3> - <ul> - <li class="right" style="margin-right: 10px"> - <a href="genindex.html" title="General Index" - >index</a></li> - <li class="right" > - <a href="py-modindex.html" title="Python Module Index" - >modules</a> |</li> - <li><a href="#">TFTPy 0.6.3 documentation</a> »</li> - </ul> - </div> - <div class="footer"> - © Copyright 2010, Michael P. Soulier. - Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2. - </div> - </body> -</html> |