62b22fb562
Removed the handler framework in favour of a TftpContextServer used as the session.
53 lines
1.6 KiB
Python
53 lines
1.6 KiB
Python
import logging
|
|
|
|
LOG_LEVEL = logging.NOTSET
|
|
MIN_BLKSIZE = 8
|
|
DEF_BLKSIZE = 512
|
|
MAX_BLKSIZE = 65536
|
|
SOCK_TIMEOUT = 5
|
|
MAX_DUPS = 20
|
|
TIMEOUT_RETRIES = 5
|
|
DEF_TFTP_PORT = 69
|
|
|
|
# Initialize the logger.
|
|
#logging.basicConfig(
|
|
# level=LOG_LEVEL,
|
|
# format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s',
|
|
# datefmt='%m-%d %H:%M:%S')
|
|
logging.basicConfig()
|
|
# The logger used by this library. Feel free to clobber it with your own, if you like, as
|
|
# long as it conforms to Python's logging.
|
|
log = logging.getLogger('tftpy')
|
|
|
|
def tftpassert(condition, msg):
|
|
"""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."""
|
|
if not condition:
|
|
raise TftpException, msg
|
|
|
|
def setLogLevel(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."""
|
|
global log
|
|
log.setLevel(level)
|
|
|
|
class TftpErrors(object):
|
|
"""This class is a convenience for defining the common tftp error codes,
|
|
and making them more readable in the code."""
|
|
NotDefined = 0
|
|
FileNotFound = 1
|
|
AccessViolation = 2
|
|
DiskFull = 3
|
|
IllegalTftpOp = 4
|
|
UnknownTID = 5
|
|
FileAlreadyExists = 6
|
|
NoSuchUser = 7
|
|
FailedNegotiation = 8
|
|
|
|
class TftpException(Exception):
|
|
"""This class is the parent class of all exceptions regarding the handling
|
|
of the TFTP protocol."""
|
|
pass
|