import ftpserver
import authorizer
import abstracted_fs
-import netsvc
-
+import logging
from tools import config
-from tools.misc import detect_ip_addr
-HOST = ''
-PORT = 8021
-PASSIVE_PORTS = None
-pps = config.get('ftp_server_passive_ports', '').split(':')
-if len(pps) == 2:
- PASSIVE_PORTS = int(pps[0]), int(pps[1])
-
-class ftp_server(threading.Thread):
- def log(self, level, message):
- logger = netsvc.Logger()
- logger.notifyChannel('FTP', level, message)
+_logger = logging.getLogger(__name__)
+def start_server():
+ HOST = config.get('ftp_server_host', '127.0.0.1')
+ PORT = int(config.get('ftp_server_port', '8021'))
+ PASSIVE_PORTS = None
+ pps = config.get('ftp_server_passive_ports', '').split(':')
+ if len(pps) == 2:
+ PASSIVE_PORTS = int(pps[0]), int(pps[1])
- def run(self):
- autho = authorizer.authorizer()
- ftpserver.FTPHandler.authorizer = autho
- ftpserver.max_cons = 300
- ftpserver.max_cons_per_ip = 50
- ftpserver.FTPHandler.abstracted_fs = abstracted_fs.abstracted_fs
- if PASSIVE_PORTS:
- ftpserver.FTPHandler.passive_ports = PASSIVE_PORTS
+ class ftp_server(threading.Thread):
+
+ def run(self):
+ autho = authorizer.authorizer()
+ ftpserver.FTPHandler.authorizer = autho
+ ftpserver.max_cons = 300
+ ftpserver.max_cons_per_ip = 50
+ ftpserver.FTPHandler.abstracted_fs = abstracted_fs.abstracted_fs
+ if PASSIVE_PORTS:
+ ftpserver.FTPHandler.passive_ports = PASSIVE_PORTS
- ftpserver.log = lambda msg: self.log(netsvc.LOG_INFO, msg)
- ftpserver.logline = lambda msg: None
- ftpserver.logerror = lambda msg: self.log(netsvc.LOG_ERROR, msg)
+ ftpserver.log = lambda msg: _logger.info(msg)
+ ftpserver.logline = lambda msg: None
+ ftpserver.logerror = lambda msg: _logger.error(msg)
- HOST = config.get('ftp_server_address', detect_ip_addr())
- PORT = int(config.get('ftp_server_port', '8021'))
- address = (HOST, PORT)
- ftpd = ftpserver.FTPServer(address, ftpserver.FTPHandler)
- ftpd.serve_forever()
+ ftpd = ftpserver.FTPServer((HOST, PORT), ftpserver.FTPHandler)
+ ftpd.serve_forever()
-ds = ftp_server()
-ds.start()
+ if HOST.lower() == 'none':
+ _logger.info("\n Server FTP Not Started\n")
+ else:
+ _logger.info("\n Serving FTP on %s:%s\n" % (HOST, PORT))
+ ds = ftp_server()
+ ds.daemon = True
+ ds.start()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: