From 9b655fcaa1f30dab63fc982a81c445183f101e43 Mon Sep 17 00:00:00 2001 From: "Michael P. Soulier" Date: Thu, 1 Sep 2011 09:35:45 -0400 Subject: [PATCH] Adding subdirectory support. Hopefully closes issue 25. --- t/foo/100KBFILE | Bin 0 -> 102400 bytes t/test.py | 38 ++++++++++++++++++++++++++++++++++++++ tftpy/TftpStates.py | 38 ++++++++++++++++++++++++++++++++------ 3 files changed, 70 insertions(+), 6 deletions(-) create mode 100644 t/foo/100KBFILE diff --git a/t/foo/100KBFILE b/t/foo/100KBFILE new file mode 100644 index 0000000000000000000000000000000000000000..77efc8df5e21b97a5222132024a91239d1f5626f GIT binary patch literal 102400 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%0DilB%L9=PM#I64g4!FI9Cdu&6? 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 literal 0 HcmV?d00001 diff --git a/t/test.py b/t/test.py index d044ac8..d078f90 100644 --- a/t/test.py +++ b/t/test.py @@ -245,5 +245,43 @@ class TestTftpyState(unittest.TestCase): finalstate = serverstate.state.handle(ack, raddress, rport) self.assertTrue( finalstate is None ) + def testServerNoOptionsSubdir(self): + """Test the server states.""" + raddress = '127.0.0.2' + rport = 10000 + timeout = 5 + root = os.path.dirname(os.path.abspath(__file__)) + # Testing without the dyn_func_file set. + serverstate = tftpy.TftpContextServer(raddress, + rport, + timeout, + root) + + self.assertTrue( isinstance(serverstate, + tftpy.TftpContextServer) ) + + rrq = tftpy.TftpPacketRRQ() + rrq.filename = 'foo/100KBFILE' + rrq.mode = 'octet' + rrq.options = {} + + # Start the download. + serverstate.start(rrq.encode().buffer) + # At a 512 byte blocksize, this should be 200 packets exactly. + for block in range(1, 201): + # Should be in expectack state. + self.assertTrue( isinstance(serverstate.state, + tftpy.TftpStateExpectACK) ) + ack = tftpy.TftpPacketACK() + ack.blocknumber = block + serverstate.state = serverstate.state.handle(ack, raddress, rport) + + # The last DAT packet should be empty, indicating a completed + # transfer. + ack = tftpy.TftpPacketACK() + ack.blocknumber = 201 + finalstate = serverstate.state.handle(ack, raddress, rport) + self.assertTrue( finalstate is None ) + if __name__ == '__main__': unittest.main() diff --git a/tftpy/TftpStates.py b/tftpy/TftpStates.py index c106220..6f829d9 100644 --- a/tftpy/TftpStates.py +++ b/tftpy/TftpStates.py @@ -24,6 +24,9 @@ class TftpState(object): file object is required, since in tftp there's always a file involved.""" self.context = context + # This variable is used to store the absolute path to the file being + # managed. Currently only used by the server. + self.full_path = None def handle(self, pkt, raddress, rport): """An abstract method for handling a packet. It is expected to return @@ -114,11 +117,18 @@ class TftpState(object): return self log.debug("Requested filename is %s" % pkt.filename) - # There are no os.sep's allowed in the filename. - # FIXME: Should we allow subdirectories? - if pkt.filename.find(os.sep) >= 0: + + # Make sure that the path to the file is contained in the server's + # root directory. + full_path = os.path.join(self.context.root, pkt.filename) + self.full_path = os.path.abspath(full_path) + log.debug("full_path is %s" % full_path) + if self.context.root == full_path[:len(self.context.root)]: + log.info("requested file is in the server root - good") + else: + log.warn("requested file is not within the server root - bad") self.sendError(TftpErrors.IllegalTftpOp) - raise TftpException, "%s found in filename, not permitted" % os.sep + raise TftpException, "bad file path" self.context.file_to_transfer = pkt.filename @@ -252,7 +262,7 @@ class TftpStateServerRecvRRQ(TftpState): "Handle an initial RRQ packet as a server." log.debug("In TftpStateServerRecvRRQ.handle") sendoack = self.serverInitial(pkt, raddress, rport) - path = self.context.root + os.sep + self.context.file_to_transfer + path = self.full_path log.info("Opening file %s for reading" % path) if os.path.exists(path): # Note: Open in binary mode for win32 portability, since win32 @@ -293,17 +303,33 @@ class TftpStateServerRecvRRQ(TftpState): class TftpStateServerRecvWRQ(TftpState): """This class represents the state of the TFTP server when it has just received a WRQ packet.""" + def make_subdirs(self): + """The purpose of this method is to, if necessary, create all of the + subdirectories leading up to the file to the written.""" + # Pull off everything below the root. + subpath = self.full_path[:len(self.context.root)] + log.debug("make_subdirs: subpath is %s" % subpath) + dirs = subpath.split(os.sep) + current = self.context.root + for dir in dirs: + current = os.path.join(current, dir) + if os.path.isdir(current): + log.debug("%s is already an existing directory" % current) + else: + os.mkdir(current, 0700) + def handle(self, pkt, raddress, rport): "Handle an initial WRQ packet as a server." log.debug("In TftpStateServerRecvWRQ.handle") sendoack = self.serverInitial(pkt, raddress, rport) - path = self.context.root + os.sep + self.context.file_to_transfer + path = self.full_path log.info("Opening file %s for writing" % path) if os.path.exists(path): # FIXME: correct behavior? log.warn("File %s exists already, overwriting..." % self.context.file_to_transfer) # FIXME: I think we should upload to a temp file and not overwrite the # existing file until the file is successfully uploaded. + self.make_subdirs() self.context.fileobj = open(path, "wb") # Options negotiation.