From 6ab5ea47e853c6c83a43f07b7136f68e12f90ebe Mon Sep 17 00:00:00 2001 From: "Michael P. Soulier" Date: Tue, 26 Jul 2011 03:43:00 -0400 Subject: [PATCH] Documentation update for 0.6.0 --- doc/conf.py | 4 +- doc/index.rst | 6 + html/index.html | 4 +- html/sphinx/_sources/index.txt | 6 + html/sphinx/_static/basic.css | 123 +++++++- html/sphinx/_static/default.css | 42 ++- html/sphinx/_static/doctools.js | 51 ++-- html/sphinx/_static/jquery.js | 180 ++++++++++-- html/sphinx/_static/pygments.css | 123 ++++---- html/sphinx/_static/searchtools.js | 117 +++++--- html/sphinx/_static/sidebar.js | 148 ++++++++++ html/sphinx/_static/underscore.js | 16 ++ html/sphinx/genindex.html | 355 ++++++++++++----------- html/sphinx/index.html | 447 +++++++++++++++++------------ html/sphinx/modindex.html | 124 -------- html/sphinx/objects.inv | Bin 4281 -> 866 bytes html/sphinx/py-modindex.html | 143 +++++++++ html/sphinx/search.html | 35 ++- html/sphinx/searchindex.js | 2 +- 19 files changed, 1275 insertions(+), 651 deletions(-) create mode 100644 html/sphinx/_static/sidebar.js create mode 100644 html/sphinx/_static/underscore.js delete mode 100644 html/sphinx/modindex.html create mode 100644 html/sphinx/py-modindex.html diff --git a/doc/conf.py b/doc/conf.py index 670d2de..d7a5415 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -45,9 +45,9 @@ copyright = u'2010, Michael P. Soulier' # built documents. # # The short X.Y version. -version = '0.5' +version = '0.6' # The full version, including alpha/beta/rc tags. -release = '0.5.1' +release = '0.6.0' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/doc/index.rst b/doc/index.rst index 50e0d4d..6e59eba 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -101,6 +101,12 @@ The `TftpShared` Module :members: :show-inheritance: +The `TftpContexts` Module +~~~~~~~~~~~~~~~~~~~~~~~~~ +.. automodule:: tftpy.TftpContexts + :members: + :show-inheritance: + The `TftpStates` Module ~~~~~~~~~~~~~~~~~~~~~~~ .. automodule:: tftpy.TftpStates diff --git a/html/index.html b/html/index.html index a07b7cd..f2591f4 100644 --- a/html/index.html +++ b/html/index.html @@ -5,12 +5,12 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> - TFTPy - A Pure Python TFTP Implementation + TFTPy - A Pure Python TFTP Protocol Implementation @@ -43,176 +46,194 @@

Index

+
A | C | D | E | G | H | L | M | P | R | S | T | U - -
- - +

A

-
-
- -
add_dup() (tftpy.TftpStates.TftpMetrics method)
-
+ + +
+
add_dup() (tftpy.TftpContexts.TftpMetrics method)
+

C

-
-
- -
checkTimeout() (tftpy.TftpStates.TftpContext method)
-
cycle() (tftpy.TftpStates.TftpContext method)
-
+ + + +
+
checkTimeout() (tftpy.TftpContexts.TftpContext method)
+
+
cycle() (tftpy.TftpContexts.TftpContext method)
+

D

-
-
- -
decode() (tftpy.TftpPacketTypes.TftpPacket method)
-
-
(tftpy.TftpPacketTypes.TftpPacketDAT method)
-
(tftpy.TftpPacketTypes.TftpPacketERR method)
-
-
decode_options() (tftpy.TftpPacketTypes.TftpPacketWithOptions method)
-
download() (tftpy.TftpClient.TftpClient method)
-
+ + + +
+
decode() (tftpy.TftpPacketTypes.TftpPacket method)
+
+
(tftpy.TftpPacketTypes.TftpPacketDAT method)
+
(tftpy.TftpPacketTypes.TftpPacketERR method)
+
+
decode_options() (tftpy.TftpPacketTypes.TftpPacketWithOptions method)
+
+
download() (tftpy.TftpClient.TftpClient method)
+

E

- + +
-
- -
encode() (tftpy.TftpPacketTypes.TftpPacket method)
-
-
(tftpy.TftpPacketTypes.TftpPacketDAT method)
-
(tftpy.TftpPacketTypes.TftpPacketERR method)
-
(tftpy.TftpPacketTypes.TftpPacketInitial method)
+ +
+
encode() (tftpy.TftpPacketTypes.TftpPacket method)
+
+
(tftpy.TftpPacketTypes.TftpPacketDAT method)
+
(tftpy.TftpPacketTypes.TftpPacketERR method)
+
(tftpy.TftpPacketTypes.TftpPacketInitial method)
-
end() (tftpy.TftpStates.TftpContext method)
-
-
(tftpy.TftpStates.TftpContextClientDownload method)
-
(tftpy.TftpStates.TftpContextClientUpload method)
-
(tftpy.TftpStates.TftpContextServer method)
-
-
+
+
end() (tftpy.TftpContexts.TftpContext method)
+
+
(tftpy.TftpContexts.TftpContextClientDownload method)
+
(tftpy.TftpContexts.TftpContextClientUpload method)
+
(tftpy.TftpContexts.TftpContextServer method)
+
+

G

-
-
- -
gethost() (tftpy.TftpStates.TftpContext method)
-
+ + + +
+
getBlocksize() (tftpy.TftpContexts.TftpContext method)
+
+
gethost() (tftpy.TftpContexts.TftpContext method)
+

H

-
-
- -
handle() (tftpy.TftpStates.TftpState method)
-
-
(tftpy.TftpStates.TftpStateExpectACK method)
-
(tftpy.TftpStates.TftpStateExpectDAT method)
-
(tftpy.TftpStates.TftpStateSentRRQ method)
-
(tftpy.TftpStates.TftpStateSentWRQ method)
-
(tftpy.TftpStates.TftpStateServerRecvRRQ method)
-
(tftpy.TftpStates.TftpStateServerRecvWRQ method)
-
(tftpy.TftpStates.TftpStateServerStart method)
-
-
handleDat() (tftpy.TftpStates.TftpState method)
-
handleOACK() (tftpy.TftpStates.TftpState method)
-
host (tftpy.TftpStates.TftpContext attribute)
-
+ + + +
+
handle() (tftpy.TftpStates.TftpState method)
+
+
(tftpy.TftpStates.TftpStateExpectACK method)
+
(tftpy.TftpStates.TftpStateExpectDAT method)
+
(tftpy.TftpStates.TftpStateSentRRQ method)
+
(tftpy.TftpStates.TftpStateSentWRQ method)
+
(tftpy.TftpStates.TftpStateServerRecvRRQ method)
+
(tftpy.TftpStates.TftpStateServerRecvWRQ method)
+
(tftpy.TftpStates.TftpStateServerStart method)
+
+
handleDat() (tftpy.TftpStates.TftpState method)
+
+
handleOACK() (tftpy.TftpStates.TftpState method)
+
host (tftpy.TftpContexts.TftpContext attribute)
+

L

-
-
- -
listen() (tftpy.TftpServer.TftpServer method)
-
+ + +
+
listen() (tftpy.TftpServer.TftpServer method)
+

M

-
-
- -
match_options() (tftpy.TftpPacketTypes.TftpPacketOACK method)
-
+ + +
+
match_options() (tftpy.TftpPacketTypes.TftpPacketOACK method)
+

P

-
-
- -
parse() (tftpy.TftpPacketFactory.TftpPacketFactory method)
-
+ + +
+
parse() (tftpy.TftpPacketFactory.TftpPacketFactory method)
+

R

-
-
- -
returnSupportedOptions() (tftpy.TftpStates.TftpState method)
-
+ + + +
+
resendLast() (tftpy.TftpStates.TftpState method)
+
+
returnSupportedOptions() (tftpy.TftpStates.TftpState method)
+

S

- +
-
- -
sendACK() (tftpy.TftpStates.TftpState method)
-
sendDAT() (tftpy.TftpStates.TftpState method)
-
sendError() (tftpy.TftpStates.TftpState method)
-
sendOACK() (tftpy.TftpStates.TftpState method)
-
serverInitial() (tftpy.TftpStates.TftpState method)
-
sethost() (tftpy.TftpStates.TftpContext method)
-
setLogLevel() (in module tftpy.TftpShared)
-
start() (tftpy.TftpStates.TftpContextClientDownload method)
-
-
(tftpy.TftpStates.TftpContextServer method)
+ + +
+
sendACK() (tftpy.TftpStates.TftpState method)
+
sendDAT() (tftpy.TftpStates.TftpState method)
+
sendError() (tftpy.TftpStates.TftpState method)
+
sendOACK() (tftpy.TftpStates.TftpState method)
+
+
serverInitial() (tftpy.TftpStates.TftpState method)
+
sethost() (tftpy.TftpContexts.TftpContext method)
+
setLogLevel() (in module tftpy.TftpShared)
+
start() (tftpy.TftpContexts.TftpContextClientDownload method)
+
+
(tftpy.TftpContexts.TftpContextServer method)
-
+

T

-
-
- -
tftpassert() (in module tftpy.TftpShared)
-
TftpClient (class in tftpy.TftpClient)
-
TftpContext (class in tftpy.TftpStates)
-
TftpContextClientDownload (class in tftpy.TftpStates)
-
TftpContextClientUpload (class in tftpy.TftpStates)
-
TftpContextServer (class in tftpy.TftpStates)
-
TftpErrors (class in tftpy.TftpShared)
-
TftpException
-
TftpMetrics (class in tftpy.TftpStates)
-
TftpPacket (class in tftpy.TftpPacketTypes)
-
TftpPacketACK (class in tftpy.TftpPacketTypes)
-
TftpPacketDAT (class in tftpy.TftpPacketTypes)
-
TftpPacketERR (class in tftpy.TftpPacketTypes)
-
TftpPacketFactory (class in tftpy.TftpPacketFactory)
-
TftpPacketInitial (class in tftpy.TftpPacketTypes)
-
TftpPacketOACK (class in tftpy.TftpPacketTypes)
-
TftpPacketRRQ (class in tftpy.TftpPacketTypes)
-
TftpPacketWithOptions (class in tftpy.TftpPacketTypes)
-
TftpPacketWRQ (class in tftpy.TftpPacketTypes)
-
TftpServer (class in tftpy.TftpServer)
-
TftpSession (class in tftpy.TftpPacketTypes)
-
TftpState (class in tftpy.TftpStates)
-
TftpStateExpectACK (class in tftpy.TftpStates)
-
TftpStateExpectDAT (class in tftpy.TftpStates)
-
TftpStateSentRRQ (class in tftpy.TftpStates)
-
TftpStateSentWRQ (class in tftpy.TftpStates)
-
TftpStateServerRecvRRQ (class in tftpy.TftpStates)
-
TftpStateServerRecvWRQ (class in tftpy.TftpStates)
-
TftpStateServerStart (class in tftpy.TftpStates)
-
tftpy (module)
-
tftpy.TftpClient (module)
-
tftpy.TftpPacketFactory (module)
-
tftpy.TftpPacketTypes (module)
-
tftpy.TftpServer (module)
-
tftpy.TftpShared (module)
-
tftpy.TftpStates (module)
-
+ + + +
+
tftpassert() (in module tftpy.TftpShared)
+
TftpClient (class in tftpy.TftpClient)
+
TftpContext (class in tftpy.TftpContexts)
+
TftpContextClientDownload (class in tftpy.TftpContexts)
+
TftpContextClientUpload (class in tftpy.TftpContexts)
+
TftpContextServer (class in tftpy.TftpContexts)
+
TftpErrors (class in tftpy.TftpShared)
+
TftpException
+
TftpMetrics (class in tftpy.TftpContexts)
+
TftpPacket (class in tftpy.TftpPacketTypes)
+
TftpPacketACK (class in tftpy.TftpPacketTypes)
+
TftpPacketDAT (class in tftpy.TftpPacketTypes)
+
TftpPacketERR (class in tftpy.TftpPacketTypes)
+
TftpPacketFactory (class in tftpy.TftpPacketFactory)
+
TftpPacketInitial (class in tftpy.TftpPacketTypes)
+
TftpPacketOACK (class in tftpy.TftpPacketTypes)
+
TftpPacketRRQ (class in tftpy.TftpPacketTypes)
+
TftpPacketWithOptions (class in tftpy.TftpPacketTypes)
+
TftpPacketWRQ (class in tftpy.TftpPacketTypes)
+
+
TftpServer (class in tftpy.TftpServer)
+
TftpSession (class in tftpy.TftpPacketTypes)
+
TftpState (class in tftpy.TftpStates)
+
TftpStateExpectACK (class in tftpy.TftpStates)
+
TftpStateExpectDAT (class in tftpy.TftpStates)
+
TftpStateSentRRQ (class in tftpy.TftpStates)
+
TftpStateSentWRQ (class in tftpy.TftpStates)
+
TftpStateServerRecvRRQ (class in tftpy.TftpStates)
+
TftpStateServerRecvWRQ (class in tftpy.TftpStates)
+
TftpStateServerStart (class in tftpy.TftpStates)
+
TftpTimeout
+
tftpy (module)
+
tftpy.TftpClient (module)
+
tftpy.TftpContexts (module)
+
tftpy.TftpPacketFactory (module)
+
tftpy.TftpPacketTypes (module)
+
tftpy.TftpServer (module)
+
tftpy.TftpShared (module)
+
tftpy.TftpStates (module)
+

U

-
-
- -
upload() (tftpy.TftpClient.TftpClient method)
-
+ + +
+
upload() (tftpy.TftpClient.TftpClient method)
+
@@ -224,19 +245,19 @@ - - + +
@@ -248,14 +269,14 @@ index
  • - modules |
  • -
  • TFTPy v0.5.1 documentation »
  • +
  • TFTPy v0.6.0 documentation »
  • \ No newline at end of file diff --git a/html/sphinx/index.html b/html/sphinx/index.html index 0d74271..2d4f32a 100644 --- a/html/sphinx/index.html +++ b/html/sphinx/index.html @@ -1,3 +1,5 @@ + + @@ -5,21 +7,22 @@ - TFTPy — TFTPy v0.5.1 documentation + TFTPy — TFTPy v0.6.0 documentation + - + @@ -43,12 +46,14 @@

    TFTPy

    TFTPy is a pure python TFTP implementation.

    +
    +
    @@ -95,7 +100,7 @@ and you should be able to import the tftpy module.

    These modules are the ones that you will need to use directly to implement a TFTP client or server.

    -

    The tftpy Module

    +

    The tftpy Module

    This library implements the tftp protocol, based on rfc 1350. http://www.faqs.org/rfcs/rfc1350.html At the moment it implements only a client class, but will include a server, @@ -104,14 +109,14 @@ with support for variable block sizes.

    directly. The TftpClient and TftpServer classes can be reached through it.

    -

    The TftpClient Module

    +

    The TftpClient Module

    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.

    class tftpy.TftpClient.TftpClient(host, port, options={})
    -

    Bases: tftpy.TftpPacketTypes.TftpSession

    +

    Bases: tftpy.TftpPacketTypes.TftpSession

    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.

    @@ -139,6 +144,8 @@ 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.

    +

    The input option is the full path to the file to upload, which can +optionally be ‘-‘ to read from stdin.

    Note: If output is a hyphen then stdout is used.

    @@ -146,7 +153,7 @@ DAT packet to be ACKd by the server.

    -

    The TftpServer Module

    +

    The TftpServer Module

    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 @@ -154,7 +161,7 @@ TftpShared.

    class tftpy.TftpServer.TftpServer(tftproot='/tftpboot', dyn_file_func=None)
    -

    Bases: tftpy.TftpPacketTypes.TftpSession

    +

    Bases: tftpy.TftpPacketTypes.TftpSession

    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 @@ -164,9 +171,10 @@ content.

    listen(listenip='', listenport=69, timeout=5)
    -
    Start a server listening on the supplied interface and port. This +

    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.

    +supply a different socket timeout value, if desired.

    +
    @@ -175,35 +183,36 @@ supply a different socket timeout value, if desired.

    Back-end Modules

    -

    The TftpPacketFactory Module

    +

    The TftpPacketFactory Module

    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.

    class tftpy.TftpPacketFactory.TftpPacketFactory
    -

    Bases: object

    +

    Bases: object

    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.

    parse(buffer)
    -
    This method is used to parse an existing datagram into its +

    This method is used to parse an existing datagram into its corresponding TftpPacket object. The buffer is the raw bytes off of -the network.

    +the network.

    +
    -

    The TftpPacketTypes Module

    +

    The TftpPacketTypes Module

    This module implements the packet types of TFTP itself, and the corresponding encode and decode methods for them.

    class tftpy.TftpPacketTypes.TftpPacket
    -

    Bases: object

    +

    Bases: object

    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.

    @@ -232,7 +241,7 @@ order suitable for sending over the wire.

    class tftpy.TftpPacketTypes.TftpPacketACK
    -

    Bases: tftpy.TftpPacketTypes.TftpPacket

    +

    Bases: tftpy.TftpPacketTypes.TftpPacket

            2 bytes    2 bytes
             -------------------
     ACK   | 04    |   Block #  |
    @@ -243,7 +252,7 @@ ACK   | 04    |   Block #  |
     
    class tftpy.TftpPacketTypes.TftpPacketDAT
    -

    Bases: tftpy.TftpPacketTypes.TftpPacket

    +

    Bases: tftpy.TftpPacketTypes.TftpPacket

            2 bytes    2 bytes       n bytes
             ---------------------------------
     DATA  | 03    |   Block #  |    Data    |
    @@ -252,21 +261,23 @@ DATA  | 03    |   Block #  |    Data    |
     
    decode()
    -
    Decode self.buffer into instance variables. It returns self for -easy method chaining.
    +

    Decode self.buffer into instance variables. It returns self for +easy method chaining.

    +
    encode()
    -
    Encode the DAT packet. This method populates self.buffer, and -returns self for easy method chaining.
    +

    Encode the DAT packet. This method populates self.buffer, and +returns self for easy method chaining.

    +
    class tftpy.TftpPacketTypes.TftpPacketERR
    -

    Bases: tftpy.TftpPacketTypes.TftpPacket

    +

    Bases: tftpy.TftpPacketTypes.TftpPacket

            2 bytes  2 bytes        string    1 byte
             ----------------------------------------
     ERROR | 05    |  ErrorCode |   ErrMsg   |   0  |
    @@ -289,33 +300,36 @@ Value     Meaning
     
    decode()
    -
    Decode self.buffer, populating instance variables and return self.
    +

    Decode self.buffer, populating instance variables and return self.

    +
    encode()
    -
    Encode the DAT packet based on instance variables, populating -self.buffer, returning self.
    +

    Encode the DAT packet based on instance variables, populating +self.buffer, returning self.

    +
    class tftpy.TftpPacketTypes.TftpPacketInitial
    -

    Bases: tftpy.TftpPacketTypes.TftpPacket, tftpy.TftpPacketTypes.TftpPacketWithOptions

    +

    Bases: tftpy.TftpPacketTypes.TftpPacket, tftpy.TftpPacketTypes.TftpPacketWithOptions

    This class is a common parent class for the RRQ and WRQ packets, as they share quite a bit of code.

    encode()
    -
    Encode the packet’s buffer from the instance variables.
    +

    Encode the packet’s buffer from the instance variables.

    +
    class tftpy.TftpPacketTypes.TftpPacketOACK
    -

    Bases: tftpy.TftpPacketTypes.TftpPacket, tftpy.TftpPacketTypes.TftpPacketWithOptions

    +

    Bases: tftpy.TftpPacketTypes.TftpPacket, tftpy.TftpPacketTypes.TftpPacketWithOptions

    +-------+---~~---+---+---~~---+---+---~~---+---+---~~---+---+
     |  opc  |  opt1  | 0 | value1 | 0 |  optN  | 0 | valueN | 0 |
     +-------+---~~---+---+---~~---+---+---~~---+---+---~~---+---+
    @@ -323,18 +337,19 @@ they share quite a bit of code.

    match_options(options)
    -
    This method takes a set of options, and tries to match them with +

    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.

    +options.

    +
    class tftpy.TftpPacketTypes.TftpPacketRRQ
    -

    Bases: tftpy.TftpPacketTypes.TftpPacketInitial

    +

    Bases: tftpy.TftpPacketTypes.TftpPacketInitial

            2 bytes    string   1 byte     string   1 byte
             -----------------------------------------------
     RRQ/  | 01/02 |  Filename  |   0  |    Mode    |   0  |
    @@ -345,7 +360,7 @@ WRQ     -----------------------------------------------
    class tftpy.TftpPacketTypes.TftpPacketWRQ
    -

    Bases: tftpy.TftpPacketTypes.TftpPacketInitial

    +

    Bases: tftpy.TftpPacketTypes.TftpPacketInitial

            2 bytes    string   1 byte     string   1 byte
             -----------------------------------------------
     RRQ/  | 01/02 |  Filename  |   0  |    Mode    |   0  |
    @@ -356,35 +371,36 @@ WRQ     -----------------------------------------------
    class tftpy.TftpPacketTypes.TftpPacketWithOptions
    -

    Bases: object

    +

    Bases: object

    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.

    decode_options(buffer)
    -
    This method decodes the section of the buffer that contains an +

    This method decodes the section of the buffer that contains an unknown number of options. It returns a dictionary of option names and -values.

    +values.

    +
    class tftpy.TftpPacketTypes.TftpSession
    -

    Bases: object

    +

    Bases: object

    This class is the base class for the tftp client and server. Any shared code should be in this class.

    -

    The TftpShared Module

    +

    The TftpShared Module

    This module holds all objects shared by all other modules in tftpy.

    class tftpy.TftpShared.TftpErrors
    -

    Bases: object

    +

    Bases: object

    This class is a convenience for defining the common tftp error codes, and making them more readable in the code.

    @@ -392,32 +408,41 @@ and making them more readable in the code.

    exception tftpy.TftpShared.TftpException
    -

    Bases: exceptions.Exception

    +

    Bases: exceptions.Exception

    This class is the parent class of all exceptions regarding the handling of the TFTP protocol.

    +
    +
    +exception tftpy.TftpShared.TftpTimeout
    +

    Bases: tftpy.TftpShared.TftpException

    +

    This class represents a timeout error waiting for a response from the +other end.

    +
    +
    tftpy.TftpShared.setLogLevel(level)
    -
    This function is a utility function for setting the internal log level. +

    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.

    +not created.

    +
    tftpy.TftpShared.tftpassert(condition, msg)
    -
    This function is a simple utility that will check the condition +

    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.

    +by refactoring.

    +
    -
    -

    The TftpStates Module

    -

    This module implements all state handling during uploads and downloads, the -main interface to which being the TftpContext base class and the TftpState -base class.

    +
    +

    The TftpContexts Module

    +

    This module implements all contexts for state handling during uploads and +downloads, the main interface to which being the TftpContext base class.

    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 @@ -425,180 +450,224 @@ 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.

    -
    -class tftpy.TftpStates.TftpContext(host, port, timeout, dyn_file_func=None)
    -

    Bases: object

    +
    +class tftpy.TftpContexts.TftpContext(host, port, timeout, dyn_file_func=None)
    +

    Bases: object

    The base class of the contexts.

    -
    -checkTimeout(now)
    -
    Compare current time with last_update time, and raise an exception -if we’re over SOCK_TIMEOUT time.
    +
    +checkTimeout(now)
    +

    Compare current time with last_update time, and raise an exception +if we’re over the timeout time.

    +
    -
    -cycle()
    -
    Here we wait for a response from the server after sending it -something, and dispatch appropriate action to that response.
    +
    +cycle()
    +

    Here we wait for a response from the server after sending it +something, and dispatch appropriate action to that response.

    +
    -
    -end()
    -
    Perform session cleanup, since the end method should always be +
    +end()
    +

    Perform session cleanup, since the end method should always be called explicitely by the calling code, this works better than the -destructor.

    +destructor.

    +
    -
    -gethost()
    -
    Simple getter method for use in a property.
    +
    +getBlocksize()
    +

    Fetch the current blocksize for this session.

    +
    + +
    +
    +gethost()
    +

    Simple getter method for use in a property.

    +
    -
    -host
    -
    Simple getter method for use in a property.
    +
    +host
    +

    Simple getter method for use in a property.

    +
    -
    -sethost(host)
    -
    Setter method that also sets the address property as a result -of the host that is set.
    +
    +sethost(host)
    +

    Setter method that also sets the address property as a result +of the host that is set.

    +
    -
    -class tftpy.TftpStates.TftpContextClientDownload(host, port, filename, output, options, packethook, timeout)
    -

    Bases: tftpy.TftpStates.TftpContext

    +
    +class tftpy.TftpContexts.TftpContextClientDownload(host, port, filename, output, options, packethook, timeout)
    +

    Bases: tftpy.TftpContexts.TftpContext

    The download context for the client during a download. Note: If output is a hyphen, then the output will be sent to stdout.

    -
    -end()
    -
    Finish up the context.
    +
    +end()
    +

    Finish up the context.

    +
    -
    -start()
    -
    Initiate the download.
    +
    +start()
    +

    Initiate the download.

    +
    -
    -class tftpy.TftpStates.TftpContextClientUpload(host, port, filename, input, options, packethook, timeout)
    -

    Bases: tftpy.TftpStates.TftpContext

    +
    +class tftpy.TftpContexts.TftpContextClientUpload(host, port, filename, input, options, packethook, timeout)
    +

    Bases: tftpy.TftpContexts.TftpContext

    The upload context for the client during an upload. Note: If input is a hyphen, then we will use stdin.

    -
    -end()
    -
    Finish up the context.
    +
    +end()
    +

    Finish up the context.

    +
    -
    -class tftpy.TftpStates.TftpContextServer(host, port, timeout, root, dyn_file_func=None)
    -

    Bases: tftpy.TftpStates.TftpContext

    +
    +class tftpy.TftpContexts.TftpContextServer(host, port, timeout, root, dyn_file_func=None)
    +

    Bases: tftpy.TftpContexts.TftpContext

    The context for the server.

    -
    -end()
    -
    Finish up the context.
    +
    +end()
    +

    Finish up the context.

    +
    -
    -start(buffer)
    -
    Start the state cycle. Note that the server context receives an +
    +start(buffer)
    +

    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.

    +that.

    +
    -
    -class tftpy.TftpStates.TftpMetrics
    -

    Bases: object

    +
    +class tftpy.TftpContexts.TftpMetrics
    +

    Bases: object

    A class representing metrics of the transfer.

    -
    -add_dup(blocknumber)
    -
    This method adds a dup for a block number to the metrics.
    +
    +add_dup(pkt)
    +

    This method adds a dup for a packet to the metrics.

    +
    +
    +
    +

    The TftpStates Module

    +

    This module implements all state handling during uploads and downloads, the +main interface to which being the TftpState base class.

    +

    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.

    class tftpy.TftpStates.TftpState(context)
    -

    Bases: object

    +

    Bases: object

    The base class for the states.

    handle(pkt, raddress, rport)
    -
    An abstract method for handling a packet. It is expected to return -a TftpState object, either itself or a new state.
    +

    An abstract method for handling a packet. It is expected to return +a TftpState object, either itself or a new state.

    +
    handleDat(pkt)
    -
    This method handles a DAT packet during a client download, or a -server upload.
    +

    This method handles a DAT packet during a client download, or a +server upload.

    +
    handleOACK(pkt)
    -
    This method handles an OACK from the server, syncing any accepted -options.
    +

    This method handles an OACK from the server, syncing any accepted +options.

    +
    + +
    +
    +resendLast()
    +

    Resend the last sent packet due to a timeout.

    +
    returnSupportedOptions(options)
    -
    This method takes a requested options list from a client, and -returns the ones that are supported.
    +

    This method takes a requested options list from a client, and +returns the ones that are supported.

    +
    sendACK(blocknumber=None)
    -
    This method sends an ack packet to the block number specified. If +

    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.

    +parent context.

    +
    -sendDAT(resend=False)
    -
    This method sends the next DAT packet based on the data in the +sendDAT() +

    This method sends the next DAT packet based on the data in the context. It returns a boolean indicating whether the transfer is -finished.

    +finished.

    +
    sendError(errorcode)
    -
    This method uses the socket passed, and uses the errorcode to -compose and send an error packet.
    +

    This method uses the socket passed, and uses the errorcode to +compose and send an error packet.

    +
    sendOACK()
    -
    This method sends an OACK packet with the options from the current -context.
    +

    This method sends an OACK packet with the options from the current +context.

    +
    serverInitial(pkt, raddress, rport)
    -
    This method performs initial setup for a server context transfer, +

    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.

    +it is required to send an OACK to the client.

    +
    class tftpy.TftpStates.TftpStateExpectACK(context)
    -

    Bases: tftpy.TftpStates.TftpState

    +

    Bases: tftpy.TftpStates.TftpState

    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 @@ -606,83 +675,90 @@ download.

    handle(pkt, raddress, rport)
    -
    Handle a packet, hopefully an ACK since we just sent a DAT.
    +

    Handle a packet, hopefully an ACK since we just sent a DAT.

    +
    class tftpy.TftpStates.TftpStateExpectDAT(context)
    -

    Bases: tftpy.TftpStates.TftpState

    +

    Bases: tftpy.TftpStates.TftpState

    Just sent an ACK packet. Waiting for DAT.

    handle(pkt, raddress, rport)
    -
    Handle the packet in response to an ACK, which should be a DAT.
    +

    Handle the packet in response to an ACK, which should be a DAT.

    +
    class tftpy.TftpStates.TftpStateSentRRQ(context)
    -

    Bases: tftpy.TftpStates.TftpState

    +

    Bases: tftpy.TftpStates.TftpState

    Just sent an RRQ packet.

    handle(pkt, raddress, rport)
    -
    Handle the packet in response to an RRQ to the server.
    +

    Handle the packet in response to an RRQ to the server.

    +
    class tftpy.TftpStates.TftpStateSentWRQ(context)
    -

    Bases: tftpy.TftpStates.TftpState

    +

    Bases: tftpy.TftpStates.TftpState

    Just sent an WRQ packet for an upload.

    handle(pkt, raddress, rport)
    -
    Handle a packet we just received.
    +

    Handle a packet we just received.

    +
    class tftpy.TftpStates.TftpStateServerRecvRRQ(context)
    -

    Bases: tftpy.TftpStates.TftpState

    +

    Bases: tftpy.TftpStates.TftpState

    This class represents the state of the TFTP server when it has just received an RRQ packet.

    handle(pkt, raddress, rport)
    -
    Handle an initial RRQ packet as a server.
    +

    Handle an initial RRQ packet as a server.

    +
    class tftpy.TftpStates.TftpStateServerRecvWRQ(context)
    -

    Bases: tftpy.TftpStates.TftpState

    +

    Bases: tftpy.TftpStates.TftpState

    This class represents the state of the TFTP server when it has just received a WRQ packet.

    handle(pkt, raddress, rport)
    -
    Handle an initial WRQ packet as a server.
    +

    Handle an initial WRQ packet as a server.

    +
    class tftpy.TftpStates.TftpStateServerStart(context)
    -

    Bases: tftpy.TftpStates.TftpState

    +

    Bases: tftpy.TftpStates.TftpState

    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.

    handle(pkt, raddress, rport)
    -
    Handle a packet we just received.
    +

    Handle a packet we just received.

    +
    @@ -696,50 +772,51 @@ will commit to one of them once we interpret the initial packet.

    @@ -751,14 +828,14 @@ will commit to one of them once we interpret the initial packet.

    index
  • - modules |
  • -
  • TFTPy v0.5.1 documentation »
  • +
  • TFTPy v0.6.0 documentation »
  • \ No newline at end of file diff --git a/html/sphinx/modindex.html b/html/sphinx/modindex.html deleted file mode 100644 index 119f7f7..0000000 --- a/html/sphinx/modindex.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - Global Module Index — TFTPy v0.5.1 documentation - - - - - - - - - - - - - -
    -
    -
    -
    - - -

    Global Module Index

    - T -
    - - - - - - - - - - - - - - - - - -
     
    T
    - tftpy -
        - tftpy.TftpClient -
        - tftpy.TftpPacketFactory -
        - tftpy.TftpPacketTypes -
        - tftpy.TftpServer -
        - tftpy.TftpShared -
        - tftpy.TftpStates -
    - - -
    -
    -
    -
    -
    - - -
    -
    -
    -
    - - - - \ No newline at end of file diff --git a/html/sphinx/objects.inv b/html/sphinx/objects.inv index 7213e8e1a69aff08ff6c043f6f4954fdfd704034..e9bae006086062400216fd7e59eacd22f4060aef 100644 GIT binary patch delta 825 zcmV-91IGNhA>sy*8v!zr93Ou+3L_v?Xk{RBWo=<;Ze(S0Aa78b#rNMXCQiPX<{x4c-pO4QBUJA41VWVRJwazb-eP%0VkmY4Z59p zL?JP2MVC~G%We1TFKr5xE*o*Om#NKSJGMVNpSxC~k^(lFL2*{IC#Zk3*=g2nXY1jQ zyu@|=ExT2sts%SamQGe6Jwk7*gM`~^fN5TS-sskbZ40;Ij;-JXpRw8IOZ&S3{R-Ni z<818=|HwwV-P-JXHgh7O`<&{MX%HllJH}rCm)iym%@i^uid-m(utB0wU4g_1mwqvh zN^hf1*uUHY>WcTL< zd^>cuK2sl$SDOYno?rY9^K2rW8<1iUK6p64bjhTs;gVsP{0N<+_qny7uNm_4QT5R^ zfv5S%(z05EYB4xRQ%4pyO%KKW;7^$OPv{z6T*5EaU)g0mx3PbX&@~`6XF@!RwxOgZ z3_|`iTopwwfGd&Ue-H-!<}c5eHeTW8eJL!8`?xC5(AB{WGbAAI_9U{`4;7Yk2l^rS z#2T31KBS0svIX$hf(U)TFNEX|k@Lqg5`m?x}MjSL69l+{19k+ zhtm<^M#z;Htt$#zy&A%c%~1|pA2(`s1Fz7xo99;YFB!*(QfjTVNx)_-*>i!mj~bKU z*|!*5AV=d#raMx+wgK@3EnnP1dBe0xu3cLFOiC#-xr2XQT6(8rCKU=jph*SPEm;4+ zH)#F~j&9fk_#Di}+5? zOW-e~;qDmSCWYc1ff1xpvoS|ZaKz4fQ3-Y2uH#1O<3cxYQYiC5)}J&wzI#QD=#eJB z*e^F-YZxs}J(1*xZ+TiGLj$*uy#1^de=*fRNd1TuJNsj+<)UpGr4hvZ>+$(OC2ePmgy7aC14~y z-o1C9zRvQdtmH1MBj0cO2#pgsRlZn&Y|-_@1nbsq1G z+;f54V+5S9XauLk4v-g83Bjf{~cwFuTG^SS<4yUnT&Ir049=oPi z+^R(wI^u%ZqbHfDdE1@@2tRZ(;_)XKU5S?QqIfO3hO`*K@W@(_#qHgXd7zTZqJ{;Z zknto0F18ExPxjKV)^JT<5oA;#&!csiZMYHTtHR*ebR$$AbIxsky{w*@W04B=S>y{R zEiyyqwY_&OO*QaxfFXt(8{I#hfyq1=U}7(7AZf*AU9MKF0HKOYz>C{8133wfuzXJt zC+_e|Wy(jF0N(Mme84t_`Lxtp>6WUqxMd1)N|E|He*bq_nTpr*fveT?e9&cqbCr-# z#DO4q#GcdFFqxxc)N7E`jWTOBtda9x*qF>BvI?}==HUbP)Gqo-@>WT z1z+PaiOXjP_A>NSe+6PYktaU3pPK@!tJZ)dBNi9KcG@|#T$rtbb3jak>9owdrcv5J z;hO^KZSJ~&ZOsqr{Q9LQ)IG|m;U^EJRNQ#5<5J)$!;`HlZhc}7$3fUj HPAc_3ySY=P diff --git a/html/sphinx/py-modindex.html b/html/sphinx/py-modindex.html new file mode 100644 index 0000000..7423714 --- /dev/null +++ b/html/sphinx/py-modindex.html @@ -0,0 +1,143 @@ + + + + + + + + + Python Module Index — TFTPy v0.6.0 documentation + + + + + + + + + + + + + + +
    +
    +
    +
    + + +

    Python Module Index

    + +
    + t +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     
    + t
    + tftpy +
        + tftpy.TftpClient +
        + tftpy.TftpContexts +
        + tftpy.TftpPacketFactory +
        + tftpy.TftpPacketTypes +
        + tftpy.TftpServer +
        + tftpy.TftpShared +
        + tftpy.TftpStates +
    + + +
    +
    +
    +
    +
    + + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/html/sphinx/search.html b/html/sphinx/search.html index ff110ae..ae23d45 100644 --- a/html/sphinx/search.html +++ b/html/sphinx/search.html @@ -1,3 +1,5 @@ + + @@ -5,22 +7,28 @@ - Search — TFTPy v0.5.1 documentation + Search — TFTPy v0.6.0 documentation + - + + + + @@ -81,17 +89,14 @@ index
  • - modules |
  • -
  • TFTPy v0.5.1 documentation »
  • +
  • TFTPy v0.6.0 documentation »
  • - - - \ No newline at end of file diff --git a/html/sphinx/searchindex.js b/html/sphinx/searchindex.js index 39613ac..1c9e366 100644 --- a/html/sphinx/searchindex.js +++ b/html/sphinx/searchindex.js @@ -1 +1 @@ -Search.setIndex({desctypes:{"0":"method","1":"exception","2":"class","3":"attribute","4":"function"},terms:{all:0,code:0,chain:0,tftpclient:0,concept:0,last_upd:0,inaddr_ani:0,disk:0,local_filenam:0,readabl:0,send:0,fatal:0,sent:0,sourc:0,string:0,fals:0,faq:0,tftpstateserverstart:0,util:0,tri:0,tftpshare:0,tftpstateexpectdat:0,tftpexcept:0,setloglevel:0,list:0,upload:0,blocknumb:0,sync:0,pass:0,download:0,port:0,rrq:0,index:0,compar:0,section:0,abl:0,tftppacketiniti:0,current:0,"new":0,method:0,next_block:0,full:0,gener:0,here:0,let:0,address:0,path:0,sinc:0,valu:0,wait:0,search:0,serveriniti:0,amount:0,loop:0,permit:0,action:0,implement:0,tftppacketdat:0,via:0,modul:0,filenam:0,api:0,sendack:0,opcod:0,instal:0,from:0,two:0,next:0,call:0,value1:0,msg:0,type:0,until:0,more:0,diamond:0,desir:0,tftpstateserverrecvrrq:0,indic:0,hold:0,must:0,none:0,valuen:0,setup:0,work:0,tftpsession:0,can:0,root:0,listenip:0,overrid:0,share:0,accept:0,alwai:0,end:0,goal:0,add_dup:0,write:0,pure:0,instead:0,negoti:0,simpl:0,updat:0,haven:0,after:0,mai:0,tftppacketrrq:0,data:0,alloc:0,optn:0,stdin:0,explicit:0,correspond:0,caus:0,receiv:0,callabl:0,order:0,tftpy:0,over:0,through:0,still:0,dynam:0,paramet:0,remote_filenam:0,binari:0,tftppackettyp:0,better:0,complex:0,wrq:0,main:0,them:0,"return":0,thei:0,python:0,initi:0,dat:0,packethook:0,front:0,now:0,name:0,opt1:0,level:0,mode:0,timeout:0,each:0,found:0,mean:0,tftpcontextclientdownload:0,expect:0,out:0,variabl:0,network:0,content:0,suitabl:0,tftppacketack:0,tftppacketwrq:0,tftpcontextclientupload:0,standard:0,base:0,dictionari:0,put:0,org:0,"byte":0,unwant:0,tftppacketwithopt:0,think:0,first:0,oper:0,directli:0,onc:0,number:0,alreadi:0,done:0,tftppacket:0,size:0,differ:0,script:0,unknown:0,messag:0,transitori:0,illeg:0,conveni:0,listen:0,udp:0,option:0,copi:0,specifi:0,part:0,pars:0,than:0,serv:0,keyword:0,remot:0,tftpstateserverrecvwrq:0,cleaner:0,rfc1350:0,argument:0,raw:0,have:0,need:0,self:0,violat:0,note:0,also:0,client:0,take:0,which:0,notset:0,singl:0,unless:0,distribut:0,buffer:0,object:0,reach:0,"class":0,don:0,request:0,doe:0,getter:0,pkt:0,session:0,find:0,setter:0,access:0,onli:0,configur:0,should:0,dict:0,local:0,tftpassert:0,senddat:0,pypi:0,gethost:0,requir:0,resend:0,rfc:0,provid:0,common:0,contain:0,senderror:0,set:0,packet:0,see:0,result:0,respons:0,fail:0,tftpcontext:0,wire:0,hopefulli:0,someth:0,state:0,simplest:0,"import":0,parent:0,cycl:0,entir:0,popul:0,tftpmetric:0,handleoack:0,instanc:0,context:0,tftp:0,simpli:0,point:0,instanti:0,hyphen:0,arriv:0,dispatch:0,suppli:0,tftpstatesentrrq:0,throughout:0,quit:0,compos:0,been:0,destructor:0,interpret:0,dup:0,dure:0,ani:0,those:0,"case":0,ident:0,listenport:0,properti:0,defin:0,"while":0,error:0,errmsg:0,pack:0,tftppacketoack:0,stdout:0,metric:0,itself:0,rport:0,perform:0,make:0,same:0,handl:0,html:0,decod:0,document:0,complet:0,finish:0,http:0,tftpcontextserv:0,moment:0,rais:0,user:0,distutil:0,chang:0,ackd:0,appropri:0,off:0,checktimeout:0,inherit:0,exampl:0,thi:0,unchang:0,protocol:0,just:0,file:0,tftproot:0,easi:0,handledat:0,dyn_file_func:0,except:0,add:0,cleanup:0,input:0,save:0,match:0,build:0,bin:0,read:0,tftperror:0,know:0,opc:0,bit:0,like:0,specif:0,server:0,"boolean":0,either:0,output:0,page:0,www:0,some:0,back:0,intern:0,sampl:0,librari:0,subclass:0,condit:0,run:0,host:0,oack:0,"throw":0,socket:0,ack:0,tftpstatesentwrq:0,slightli:0,manag:0,datagram:0,commit:0,block:0,own:0,encod:0,easy_instal:0,log:0,transfer:0,support:0,start:0,tftpstateexpectack:0,interfac:0,includ:0,exceed:0,digitaltorqu:0,"function":0,form:0,regard:0,tftppacketfactori:0,sethost:0,raddress:0,sendoack:0,match_opt:0,whether:0,tftppacketerr:0,creat:0,"abstract":0,doesn:0,repres:0,exist:0,decode_opt:0,pip:0,check:0,when:0,refactor:0,"default":0,other:0,sock_timeout:0,test:0,you:0,tftpstate:0,returnsupportedopt:0,directori:0,tftpboot:0,tftpserver:0,time:0,errorcod:0},titles:["TFTPy"],modules:{"tftpy.TftpServer":0,tftpy:0,"tftpy.TftpShared":0,"tftpy.TftpPacketTypes":0,"tftpy.TftpStates":0,"tftpy.TftpClient":0,"tftpy.TftpPacketFactory":0},descrefs:{"tftpy.TftpPacketFactory.TftpPacketFactory":{parse:[0,0]},"tftpy.TftpShared":{tftpassert:[0,4],setLogLevel:[0,4],TftpException:[0,1],TftpErrors:[0,2]},"tftpy.TftpStates.TftpContextServer":{start:[0,0],end:[0,0]},"tftpy.TftpStates":{TftpContextClientUpload:[0,2],TftpMetrics:[0,2],TftpContextServer:[0,2],TftpState:[0,2],TftpContextClientDownload:[0,2],TftpStateServerStart:[0,2],TftpStateServerRecvRRQ:[0,2],TftpStateExpectACK:[0,2],TftpStateSentWRQ:[0,2],TftpStateSentRRQ:[0,2],TftpStateExpectDAT:[0,2],TftpContext:[0,2],TftpStateServerRecvWRQ:[0,2]},"tftpy.TftpPacketFactory":{TftpPacketFactory:[0,2]},"tftpy.TftpServer":{TftpServer:[0,2]},"tftpy.TftpPacketTypes.TftpPacket":{encode:[0,0],decode:[0,0]},"tftpy.TftpStates.TftpContext":{end:[0,0],checkTimeout:[0,0],sethost:[0,0],host:[0,3],gethost:[0,0],cycle:[0,0]},"tftpy.TftpStates.TftpContextClientDownload":{start:[0,0],end:[0,0]},"tftpy.TftpServer.TftpServer":{listen:[0,0]},"tftpy.TftpStates.TftpMetrics":{add_dup:[0,0]},"tftpy.TftpStates.TftpStateServerRecvRRQ":{handle:[0,0]},"tftpy.TftpClient":{TftpClient:[0,2]},"tftpy.TftpStates.TftpStateExpectDAT":{handle:[0,0]},"tftpy.TftpStates.TftpStateExpectACK":{handle:[0,0]},"tftpy.TftpStates.TftpStateSentRRQ":{handle:[0,0]},"tftpy.TftpStates.TftpState":{sendError:[0,0],handle:[0,0],handleOACK:[0,0],handleDat:[0,0],serverInitial:[0,0],returnSupportedOptions:[0,0],sendACK:[0,0],sendOACK:[0,0],sendDAT:[0,0]},"tftpy.TftpStates.TftpStateServerStart":{handle:[0,0]},"tftpy.TftpStates.TftpStateSentWRQ":{handle:[0,0]},"tftpy.TftpStates.TftpContextClientUpload":{end:[0,0]},"tftpy.TftpPacketTypes.TftpPacketERR":{decode:[0,0],encode:[0,0]},"tftpy.TftpPacketTypes.TftpPacketInitial":{encode:[0,0]},"tftpy.TftpClient.TftpClient":{download:[0,0],upload:[0,0]},"tftpy.TftpPacketTypes":{TftpPacketDAT:[0,2],TftpPacketWRQ:[0,2],TftpPacketERR:[0,2],TftpSession:[0,2],TftpPacketWithOptions:[0,2],TftpPacketOACK:[0,2],TftpPacketACK:[0,2],TftpPacketRRQ:[0,2],TftpPacketInitial:[0,2],TftpPacket:[0,2]},"tftpy.TftpPacketTypes.TftpPacketWithOptions":{decode_options:[0,0]},"tftpy.TftpStates.TftpStateServerRecvWRQ":{handle:[0,0]},"tftpy.TftpPacketTypes.TftpPacketDAT":{encode:[0,0],decode:[0,0]},"tftpy.TftpPacketTypes.TftpPacketOACK":{match_options:[0,0]}},filenames:["index"]}) \ No newline at end of file +Search.setIndex({objects:{"":{tftpy:[0,0,1]},tftpy:{TftpStates:[0,0,1],TftpClient:[0,0,1],TftpPacketTypes:[0,0,1],TftpShared:[0,0,1],TftpServer:[0,0,1],TftpContexts:[0,0,1],TftpPacketFactory:[0,0,1]},"tftpy.TftpShared":{TftpTimeout:[0,2,1],tftpassert:[0,4,1],setLogLevel:[0,4,1],TftpException:[0,2,1],TftpErrors:[0,1,1]},"tftpy.TftpStates":{TftpStateSentWRQ:[0,1,1],TftpStateServerStart:[0,1,1],TftpStateServerRecvRRQ:[0,1,1],TftpStateExpectACK:[0,1,1],TftpStateSentRRQ:[0,1,1],TftpStateExpectDAT:[0,1,1],TftpState:[0,1,1],TftpStateServerRecvWRQ:[0,1,1]},"tftpy.TftpPacketFactory":{TftpPacketFactory:[0,1,1]},"tftpy.TftpServer":{TftpServer:[0,1,1]},"tftpy.TftpPacketTypes.TftpPacket":{encode:[0,3,1],decode:[0,3,1]},"tftpy.TftpPacketFactory.TftpPacketFactory":{parse:[0,3,1]},"tftpy.TftpPacketTypes.TftpPacketInitial":{encode:[0,3,1]},"tftpy.TftpServer.TftpServer":{listen:[0,3,1]},"tftpy.TftpStates.TftpStateServerRecvRRQ":{handle:[0,3,1]},"tftpy.TftpClient":{TftpClient:[0,1,1]},"tftpy.TftpContexts.TftpContextServer":{start:[0,3,1],end:[0,3,1]},"tftpy.TftpContexts.TftpMetrics":{add_dup:[0,3,1]},"tftpy.TftpStates.TftpStateExpectACK":{handle:[0,3,1]},"tftpy.TftpStates.TftpStateSentRRQ":{handle:[0,3,1]},"tftpy.TftpStates.TftpState":{sendError:[0,3,1],handle:[0,3,1],handleOACK:[0,3,1],handleDat:[0,3,1],serverInitial:[0,3,1],returnSupportedOptions:[0,3,1],resendLast:[0,3,1],sendACK:[0,3,1],sendOACK:[0,3,1],sendDAT:[0,3,1]},"tftpy.TftpContexts.TftpContext":{end:[0,3,1],checkTimeout:[0,3,1],sethost:[0,3,1],host:[0,5,1],getBlocksize:[0,3,1],gethost:[0,3,1],cycle:[0,3,1]},"tftpy.TftpContexts":{TftpContextClientDownload:[0,1,1],TftpContext:[0,1,1],TftpContextClientUpload:[0,1,1],TftpMetrics:[0,1,1],TftpContextServer:[0,1,1]},"tftpy.TftpStates.TftpStateServerStart":{handle:[0,3,1]},"tftpy.TftpStates.TftpStateSentWRQ":{handle:[0,3,1]},"tftpy.TftpContexts.TftpContextClientDownload":{start:[0,3,1],end:[0,3,1]},"tftpy.TftpPacketTypes.TftpPacketDAT":{encode:[0,3,1],decode:[0,3,1]},"tftpy.TftpPacketTypes.TftpPacketERR":{decode:[0,3,1],encode:[0,3,1]},"tftpy.TftpClient.TftpClient":{download:[0,3,1],upload:[0,3,1]},"tftpy.TftpStates.TftpStateExpectDAT":{handle:[0,3,1]},"tftpy.TftpPacketTypes":{TftpPacketDAT:[0,1,1],TftpPacketWRQ:[0,1,1],TftpPacketERR:[0,1,1],TftpSession:[0,1,1],TftpPacketWithOptions:[0,1,1],TftpPacketOACK:[0,1,1],TftpPacketACK:[0,1,1],TftpPacketRRQ:[0,1,1],TftpPacketInitial:[0,1,1],TftpPacket:[0,1,1]},"tftpy.TftpPacketTypes.TftpPacketWithOptions":{decode_options:[0,3,1]},"tftpy.TftpStates.TftpStateServerRecvWRQ":{handle:[0,3,1]},"tftpy.TftpContexts.TftpContextClientUpload":{end:[0,3,1]},"tftpy.TftpPacketTypes.TftpPacketOACK":{match_options:[0,3,1]}},terms:{all:0,code:0,chain:0,tftpclient:0,concept:0,blocknumb:0,inaddr_ani:0,disk:0,local_filenam:0,readabl:0,send:0,fatal:0,sent:0,sourc:0,string:0,fals:0,than:0,faq:0,tftpstateserverstart:0,util:0,tri:0,tftpshare:0,tftpstateexpectdat:0,tftpexcept:0,setloglevel:0,list:0,upload:0,last_upd:0,sync:0,pass:0,download:0,port:0,rrq:0,index:0,compar:0,section:0,abl:0,tftppacketiniti:0,current:0,"new":0,method:0,next_block:0,full:0,gener:0,here:0,let:0,address:0,path:0,sinc:0,valu:0,wait:0,search:0,serveriniti:0,amount:0,loop:0,permit:0,action:0,implement:0,tftppacketdat:0,via:0,modul:0,filenam:0,api:0,sendack:0,opcod:0,instal:0,from:0,two:0,next:0,call:0,value1:0,msg:0,type:0,until:0,more:0,diamond:0,desir:0,tftpstateserverrecvrrq:0,indic:0,hold:0,must:0,none:0,valuen:0,setup:0,work:0,tftpsession:0,can:0,root:0,fetch:0,listenip:0,overrid:0,share:0,accept:0,alwai:0,end:0,goal:0,add_dup:0,write:0,pure:0,instead:0,negoti:0,simpl:0,updat:0,tftptimeout:0,after:0,mai:0,tftppacketrrq:0,data:0,alloc:0,optn:0,stdin:0,explicit:0,correspond:0,caus:0,perform:0,callabl:0,order:0,tftpy:0,over:0,through:0,still:0,dynam:0,paramet:0,remote_filenam:0,binari:0,tftppackettyp:0,better:0,html:0,wrq:0,main:0,them:0,"return":0,thei:0,python:0,initi:0,dat:0,packethook:0,front:0,now:0,name:0,opt1:0,level:0,mode:0,timeout:0,each:0,found:0,mean:0,tftpcontextclientdownload:0,expect:0,out:0,variabl:0,network:0,content:0,suitabl:0,tftppacketack:0,tftppacketwrq:0,tftpcontextclientupload:0,standard:0,base:0,dictionari:0,put:0,org:0,"byte":0,unwant:0,tftppacketwithopt:0,think:0,first:0,oper:0,directli:0,onc:0,number:0,alreadi:0,done:0,tftppacket:0,size:0,differ:0,script:0,unknown:0,messag:0,transitori:0,illeg:0,conveni:0,listen:0,udp:0,option:0,copi:0,specifi:0,part:0,pars:0,haven:0,serv:0,keyword:0,remot:0,tftpstateserverrecvwrq:0,cleaner:0,rfc1350:0,argument:0,raw:0,tftppacketoack:0,need:0,self:0,violat:0,note:0,also:0,exampl:0,take:0,which:0,notset:0,singl:0,unless:0,distribut:0,buffer:0,object:0,reach:0,"class":0,don:0,request:0,doe:0,getter:0,pkt:0,session:0,find:0,setter:0,access:0,onli:0,configur:0,should:0,dict:0,local:0,tftpassert:0,senddat:0,pypi:0,gethost:0,requir:0,resend:0,rfc:0,provid:0,common:0,contain:0,senderror:0,set:0,packet:0,see:0,result:0,respons:0,fail:0,tftpcontext:0,wire:0,hopefulli:0,someth:0,state:0,simplest:0,"import":0,parent:0,cycl:0,entir:0,popul:0,tftpmetric:0,last:0,handleoack:0,instanc:0,context:0,tftp:0,simpli:0,point:0,instanti:0,hyphen:0,arriv:0,dispatch:0,suppli:0,tftpstatesentrrq:0,throughout:0,quit:0,compos:0,been:0,destructor:0,interpret:0,dup:0,dure:0,ani:0,those:0,"case":0,ident:0,listenport:0,properti:0,defin:0,"while":0,error:0,errmsg:0,pack:0,have:0,stdout:0,metric:0,itself:0,rport:0,receiv:0,make:0,same:0,handl:0,complex:0,decod:0,document:0,complet:0,finish:0,http:0,tftpcontextserv:0,moment:0,rais:0,user:0,distutil:0,chang:0,ackd:0,appropri:0,off:0,checktimeout:0,inherit:0,client:0,thi:0,unchang:0,protocol:0,just:0,file:0,tftproot:0,easi:0,handledat:0,dyn_file_func:0,except:0,add:0,other:0,input:0,save:0,match:0,build:0,bin:0,read:0,tftperror:0,know:0,opc:0,bit:0,like:0,specif:0,server:0,"boolean":0,either:0,output:0,page:0,www:0,some:0,back:0,intern:0,sampl:0,librari:0,subclass:0,condit:0,blocksiz:0,run:0,host:0,oack:0,"throw":0,socket:0,ack:0,tftpstatesentwrq:0,slightli:0,manag:0,datagram:0,commit:0,block:0,own:0,resendlast:0,encod:0,easy_instal:0,due:0,log:0,transfer:0,support:0,start:0,tftpstateexpectack:0,interfac:0,includ:0,exceed:0,digitaltorqu:0,"function":0,form:0,regard:0,tftppacketfactori:0,sethost:0,raddress:0,sendoack:0,match_opt:0,whether:0,tftppacketerr:0,creat:0,"abstract":0,doesn:0,repres:0,exist:0,decode_opt:0,pip:0,check:0,when:0,refactor:0,"default":0,cleanup:0,sock_timeout:0,test:0,you:0,tftpstate:0,returnsupportedopt:0,getblocks:0,directori:0,tftpboot:0,tftpserver:0,time:0,errorcod:0},objtypes:{"0":"py:module","1":"py:class","2":"py:exception","3":"py:method","4":"py:function","5":"py:attribute"},titles:["TFTPy"],objnames:{"0":"Python module","1":"Python class","2":"Python exception","3":"Python method","4":"Python function","5":"Python attribute"},filenames:["index"]}) \ No newline at end of file