def main():
    authorizer = DummyAuthorizer()
    authorizer.add_user('user', '12345', '.', perm='elradfmw')
    authorizer.add_anonymous('.')
    handler = AntiFloodHandler
    handler.authorizer = authorizer
    ftpd = FTPServer(('', 21), handler)
    ftpd.serve_forever(timeout=1)
def main():
    authorizer = DummyAuthorizer()
    authorizer.add_user('user', '12345', '.', perm='elradfmw')
    authorizer.add_anonymous('.')
    handler = AntiFloodHandler
    handler.authorizer = authorizer
    ftpd = FTPServer(('', 21), handler)
    ftpd.serve_forever(timeout=1)
Exemple #3
0
 def serve_forever(self, timeout=None, blocking=True):
     self._serving = True
     closed = False
     try:
         _FTPServer.serve_forever(self, timeout, blocking)
     except (KeyboardInterrupt, SystemExit):
         self.close_all()
         closed = True
         raise
     finally:
         if blocking and not closed:
             self.close_all()
Exemple #4
0
 def serve_forever(self, timeout=None, blocking=True):
     self._serving = True
     closed = False
     try:
         _FTPServer.serve_forever(self, timeout, blocking)
     except (KeyboardInterrupt, SystemExit):
         self.close_all()
         closed = True
         raise
     finally:
         if blocking and not closed:
             self.close_all()
Exemple #5
0
 def close_all(self):
     tasks = self._active_tasks[:]
     # this must be set after getting active tasks as it causes
     # thread objects to get out of the list too soon
     self._serving = False
     if tasks and hasattr(tasks[0], 'terminate'):
         for t in tasks:
             try:
                 t.terminate()
             except OSError:
                 err = sys.exc_info()[1]
                 if err.errno != errno.ESRCH:
                     raise
     for t in tasks:
         if t.is_alive():
             t.join()
     del self._active_tasks[:]
     _FTPServer.close_all(self)
Exemple #6
0
 def close_all(self):
     tasks = self._active_tasks[:]
     # this must be set after getting active tasks as it causes
     # thread objects to get out of the list too soon
     self._serving = False
     if tasks and hasattr(tasks[0], 'terminate'):
         for t in tasks:
             try:
                 t.terminate()
             except OSError:
                 err = sys.exc_info()[1]
                 if err.errno != errno.ESRCH:
                     raise
     for t in tasks:
         if t.is_alive():
             t.join()
     del self._active_tasks[:]
     _FTPServer.close_all(self)
Exemple #7
0
    def handle_accepted(self, sock, addr):
        handler = _FTPServer.handle_accepted(self, sock, addr)
        if handler is not None:
            # unregister the handler from the main IOLoop used by the
            # main thread to accept connections
            self.ioloop.unregister(handler._fileno)

            t = self._start_task(target=self._loop, args=(handler,))
            t.name = repr(addr)
            t.start()

            self._lock.acquire()
            self._active_tasks.append(t)
            self._lock.release()
Exemple #8
0
    def handle_accepted(self, sock, addr):
        handler = _FTPServer.handle_accepted(self, sock, addr)
        if handler is not None:
            # unregister the handler from the main IOLoop used by the
            # main thread to accept connections
            self.ioloop.unregister(handler._fileno)

            t = self._start_task(target=self._loop, args=(handler, ))
            t.name = repr(addr)
            t.start()

            self._lock.acquire()
            self._active_tasks.append(t)
            self._lock.release()
Exemple #9
0
 def __init__(self, address, handler, ioloop=None):
     _FTPServer.__init__(self, address, handler, ioloop)
     self._serving = False
     self._active_tasks = []
Exemple #10
0
 def __init__(self, address, handler, ioloop=None):
     _FTPServer.__init__(self, address, handler, ioloop)
     self._serving = False
     self._active_tasks = []