def server_start(is_verbose=False, port=None): if not os.path.isfile('conf.json'): print 'Conf file not found, please run setup.' sys.exit(1) with open('conf.json') as jd: template = json.load(jd) container.set_acc_db(str(template['user_db']), str(template['user_table'])) container.set_shares_db(str(template['user_logs'])) container.set_root_dir(str(template['root'])) container.set_log_file(str(template['root']) + '/pyftpd.log') auth = authorizer() handle = handler handle.user_sendfile = True handle.timeout = None handle.authorizer = auth handle.banner = 'this is the banner' if port: # untested address = ('', 1024) else: address = ('', 21) server = FTPServer(address, handle) server.max_cons = 256 server.maxcons_per_ip = 1000000 if not is_verbose: logging.basicConfig(filename=container.get_log_file(), level=logging.INFO) server.serve_forever()
def server_start_testing(is_verbose=False, port=None): user_db = 'test_users.db' user_table = 'users' shares_db = 'test_shares.db' username = '******' password = '******' root = os.getcwd() + '/test_server' if os.path.isfile(user_db): os.remove(user_db) if os.path.isfile(shares_db): os.remove(shares_db) if os.path.isdir(root): rmtree(root) os.mkdir(root) ta = TableAdder(user_db, user_table) cols = ['name', 'status', 'password', 'salt', 'welcome', 'goodbye'] for col in cols: if col == 'status': ta.add_column(col, 'integer') else: ta.add_column(col) ta.commit() del ta with TableManager(user_db, user_table) as tm: salt = gen_salt() password = gen_hash(password, salt) row = [username, 1, password, salt, 'welcome', 'goodbye'] tm.quick_push(row) ta = TableAdder(shares_db, username) cols = ['time', 'ip', 'cmd', 'line', 'arg'] for col in cols: ta.add_column(col) ta.commit() del ta container.set_acc_db(user_db, user_table) container.set_shares_db(shares_db) container.set_root_dir(root) container.set_log_file(root + '/pyftpd.log') auth = authorizer() handle = handler handle.user_sendfile = True handle.timeout = None handle.authorizer = auth handle.banner = 'this is the banner' if port: # untested address = ('', port) else: address = ('', 21) server = FTPServer(address, handle) server.max_cons = 256 server.maxcons_per_ip = 5 if not is_verbose: logging.basicConfig(filename=container.get_log_file(), level=logging.INFO) server.serve_forever()