def setUp(self):
     self.temp_dir = FilePath(tempfile.mkdtemp()).asBytesMode()
     with self.temp_dir.child(b'nonempty').open('w') as fd:
         fd.write(b'Something uninteresting')
     self.backend = FilesystemSynchronousBackend(self.temp_dir)
     self.tftp = TFTPWrapper(self.backend)
     self.client = DummyClient()
     reactor.listenUDP(0, self.client)
     self.server_port = reactor.listenUDP(1069, self.tftp)
Example #2
0
def main():
    from tftp.backend import FilesystemSynchronousBackend
    from tftp.protocol import TFTP
    from twisted.internet import reactor
    from twisted.python import log
    random.seed()
    log.startLogging(sys.stdout)
    #reactor.listenUDP(1069, TFTP(FilesystemSynchronousBackend('output')))
    cwd = os.getcwd()
    reactor.listenUDP(69, TFTP(FilesystemSynchronousBackend(cwd)))
    reactor.run()
Example #3
0
 def test_write_ignores_leading_and_trailing_slashes(self):
     b = FilesystemSynchronousBackend(self.temp_dir.path)
     writer = yield b.get_writer(b'/dir/bar/')
     segments_from_root = writer.file_path.segmentsFrom(self.temp_dir)
     self.assertEqual([b"dir", b"bar"], segments_from_root)
Example #4
0
 def test_insecure_writer(self):
     b = FilesystemSynchronousBackend(self.temp_dir.path)
     return self.assertFailure(b.get_writer(b'../foo'), AccessViolation)
Example #5
0
 def test_write_unsupported(self):
     b = FilesystemSynchronousBackend(self.temp_dir.path, can_write=False)
     return self.assertFailure(b.get_writer(b'dir/bar'), Unsupported)
Example #6
0
 def test_read_unsupported(self):
     b = FilesystemSynchronousBackend(self.temp_dir.path, can_read=False)
     return self.assertFailure(b.get_reader(b'dir/foo'), Unsupported)
Example #7
0
 def test_write_supported_by_default(self):
     b = FilesystemSynchronousBackend(self.temp_dir.path)
     writer = yield b.get_writer(b'dir/bar')
     self.assertTrue(IWriter.providedBy(writer))
Example #8
0
 def test_read_supported_by_default(self):
     b = FilesystemSynchronousBackend(self.temp_dir.path)
     reader = yield b.get_reader(b'dir/foo')
     self.assertTrue(IReader.providedBy(reader))
Example #9
0
 def test_read_ignores_leading_and_trailing_slashes(self):
     b = FilesystemSynchronousBackend(self.temp_dir.path)
     reader = yield b.get_reader('/dir/foo/')
     segments_from_root = reader.file_path.segmentsFrom(self.temp_dir)
     self.assertEqual(["dir", "foo"], segments_from_root)
Example #10
0
def main():
    random.seed()
    log.startLogging(sys.stdout)
    reactor.listenUDP(1069, TFTP(FilesystemSynchronousBackend('output')))
    reactor.run()
Example #11
0
 def makeService(self, options):
     backend = FilesystemSynchronousBackend(
         options["root-directory"],
         can_read=options['enable-reading'],
         can_write=options['enable-writing'])
     return internet.UDPServer(options['port'], TFTP(backend))