def main(): shell.check_python() # fix py2exe if hasattr(sys, "frozen") and sys.frozen in \ ("windows_exe", "console_exe"): p = os.path.dirname(os.path.abspath(sys.executable)) os.chdir(p) config = shell.get_config(True) daemon.daemon_exec(config) logging.info("starting local at %s:%d" % (config['local_address'], config['local_port'])) dns_resolver = asyncdns.DNSResolver() tcp_server = tcprelay.TCPRelay(config, dns_resolver, True) udp_server = udprelay.UDPRelay(config, dns_resolver, True) loop = eventloop.EventLoop() dns_resolver.add_to_loop(loop) tcp_server.add_to_loop(loop) udp_server.add_to_loop(loop) def handler(signum, _): logging.warn('received SIGQUIT, doing graceful shutting down..') tcp_server.close(next_tick=True) udp_server.close(next_tick=True) signal.signal(getattr(signal, 'SIGQUIT', signal.SIGTERM), handler) def int_handler(signum, _): sys.exit(1) signal.signal(signal.SIGINT, int_handler) daemon.set_user(config.get('user', None)) loop.run()
def run_server(): def child_handler(signum, _): logging.warn('received SIGQUIT, doing graceful shutting down..') list( map(lambda s: s.close(next_tick=True), tcp_servers + udp_servers)) signal.signal(getattr(signal, 'SIGQUIT', signal.SIGTERM), child_handler) def int_handler(signum, _): sys.exit(1) signal.signal(signal.SIGINT, int_handler) try: loop = eventloop.EventLoop() dns_resolver.add_to_loop(loop) list(map(lambda s: s.add_to_loop(loop), tcp_servers + udp_servers)) daemon.set_user(config.get('user', None)) loop.run() except Exception as e: shell.print_exception(e) sys.exit(1)
def main(): shell.check_python() config = shell.get_config(False) daemon.daemon_exec(config) daemon.set_user(config.get('user', None)) thread.start_new_thread(db_transfer.DbTransfer.thread_db, ()) while True: time.sleep(99999)
def main(): shell.check_python() # fix py2exe if hasattr(sys, "frozen") and sys.frozen in \ ("windows_exe", "console_exe"): p = os.path.dirname(os.path.abspath(sys.executable)) os.chdir(p) config = shell.get_config(True) if not config.get('dns_ipv6', False): asyncdns.IPV6_CONNECTION_SUPPORT = False daemon.daemon_exec(config) logging.info( "local start with protocol[%s] password [%s] method [%s] obfs [%s] obfs_param [%s]" % (config['protocol'], config['password'], config['method'], config['obfs'], config['obfs_param'])) try: logging.info("starting local at %s:%d" % (config['local_address'], config['local_port'])) dns_resolver = asyncdns.DNSResolver() tcp_server = tcprelay.TCPRelay(config, dns_resolver, True) udp_server = udprelay.UDPRelay(config, dns_resolver, True) loop = eventloop.EventLoop() dns_resolver.add_to_loop(loop) tcp_server.add_to_loop(loop) udp_server.add_to_loop(loop) def handler(signum, _): logging.warn('received SIGQUIT, doing graceful shutting down..') tcp_server.close(next_tick=True) udp_server.close(next_tick=True) signal.signal(getattr(signal, 'SIGQUIT', signal.SIGTERM), handler) def int_handler(signum, _): sys.exit(1) signal.signal(signal.SIGINT, int_handler) daemon.set_user(config.get('user', None)) loop.run() except Exception as e: shell.print_exception(e) sys.exit(1)
def main(): shell.check_python() # fix py2exe if hasattr(sys, "frozen") and sys.frozen in ("windows_exe", "console_exe"): p = os.path.dirname(os.path.abspath(sys.executable)) os.chdir(p) config = shell.get_config(True) #added by cloud for local random choose a server and the port and the port_password if config['port_password']: if config['password']: logging.warn( 'warning: port_password should not be used with server_port and password. server_port and password will be ignored' ) # config['server_port'] = int(random.choice(config['port_password'].items())[0]) if config.has_key('server_port'): if type(config['server_port']) == list and config['server_port']: config['server_port'] = random.choice( config.get('server_port', 8388)) elif config['server_port']: config['server_port'] == int( common.to_str(config.get('server_port', 8388))) else: config['server_port'] = int( random.choice(config['port_password'].items())[0]) else: config['server_port'] = int( random.choice(config['port_password'].items())[0]) if not config['password'] or str(config['password']) == "": config['password'] = common.to_str( config['port_password']["%s" % config['server_port']]) else: if type(config['server_port']) == list and config['server_port']: config['server_port'] = random.choice( config.get('server_port', 8388)) else: config['server_port'] == int( common.to_str(config.get('server_port', 8388))) config["password"] = str( config["port_password"]["%s" % config["server_port"]]).strip() logging.warn('!' * 30) logging.info( "OK.. I choose this guy to help me f**k the GFW.. [ %s : %s : %s : %s : %s]" % (config['server'], config['server_port'], config['password'], config['server_info']["%s" % config['server']], config['method'])) logging.warn('!' * 30) time.sleep(1) daemon.daemon_exec(config) try: logging.info("starting local at %s:%d" % (config['local_address'], config['local_port'])) dns_resolver = asyncdns.DNSResolver(config) tcp_server = tcprelay.TCPRelay(config, dns_resolver, True) udp_server = udprelay.UDPRelay(config, dns_resolver, True) loop = eventloop.EventLoop(config) dns_resolver.add_to_loop(loop) tcp_server.add_to_loop(loop) udp_server.add_to_loop(loop) def handler(signum, _): logging.warn('received SIGQUIT, doing graceful shutting down..') tcp_server.close(next_tick=True) udp_server.close(next_tick=True) signal.signal(getattr(signal, 'SIGQUIT', signal.SIGTERM), handler) def int_handler(signum, _): sys.exit(1) signal.signal(signal.SIGINT, int_handler) daemon.set_user(config.get('user', None)) loop.run() except Exception as e: shell.print_exception(e) sys.exit(1)
def main(): shell.check_python() # fix py2exe if hasattr(sys, "frozen") and sys.frozen in ("windows_exe", "console_exe"): p = os.path.dirname(os.path.abspath(sys.executable)) os.chdir(p) config = shell.get_config(True) #added by tib for local random choose a server and the port and the port_password if config['port_password']: if config['password']: logging.warn('warning: port_password should not be used with server_port and password. server_port and password will be ignored') # config['server_port'] = int(random.choice(config['port_password'].items())[0]) if config.has_key('server_port'): if type(config['server_port']) == list and config['server_port']: config['server_port'] = random.choice(config.get('server_port', 8388)) elif config['server_port']: config['server_port'] == int(common.to_str(config.get('server_port',8388))) else: config['server_port'] = int(random.choice(config['port_password'].items())[0]) else: config['server_port'] = int(random.choice(config['port_password'].items())[0]) config['password'] = common.to_str(config['port_password']["%s" % config['server_port']]) else: if type(config['server_port']) == list and config['server_port']: config['server_port'] = random.choice(config.get('server_port', 8388)) else: config['server_port'] == int(common.to_str(config.get('server_port',8388))) config["password"] = str(config["port_password"]["%s" % config["server_port"]]).strip() logging.warn('!' * 30) logging.info("OK.. I choose this guy to help me f**k the GFW.. [ %s : %s : %s : %s : %s]" % (config['server'],config['server_port'],config['password'],config['server_info']["%s" % config['server']],config['method'])) logging.warn('!' * 30) time.sleep(1) daemon.daemon_exec(config) try: logging.info("starting local at %s:%d" % (config['local_address'], config['local_port'])) dns_resolver = asyncdns.DNSResolver(config) tcp_server = tcprelay.TCPRelay(config, dns_resolver, True) udp_server = udprelay.UDPRelay(config, dns_resolver, True) loop = eventloop.EventLoop(config) dns_resolver.add_to_loop(loop) tcp_server.add_to_loop(loop) udp_server.add_to_loop(loop) def handler(signum, _): logging.warn('received SIGQUIT, doing graceful shutting down..') tcp_server.close(next_tick=True) udp_server.close(next_tick=True) signal.signal(getattr(signal, 'SIGQUIT', signal.SIGTERM), handler) def int_handler(signum, _): sys.exit(1) signal.signal(signal.SIGINT, int_handler) daemon.set_user(config.get('user', None)) loop.run() except Exception as e: shell.print_exception(e) sys.exit(1)
ChatHandler._instances[sock] = ChatHandler(server, sock) return ChatHandler._instances[sock] def handle_ERR_NO_SUPPORT(self, type_, message): self.send_message(comm.copy_protocol('ERR_NO_SUPPORT')) def handle_C2S_VERSION(self, message): print('handle_C2S_VERSION=========' + message) if message == conf.VERSION: self.send_message(comm.copy_protocol('S2C_VERSION')) else: self.send_message(comm.copy_protocol('ERR_VERSION')) def handle_C2S_HEARTBEAT(self, message): print('handle_C2S_HEARTBEAT=========' + message) p = comm.copy_protocol('S2C_HEARTBEAT') p.set_data(int(time.time())) self.send_message(p) if __name__ == '__main__': config = {'daemon': 'start', 'pid-file': '/tmp/chat-server.pid', 'log-file':'log.log', 'user': '******'} daemon.daemon_exec(config) daemon.set_user(config.get('user', None)) ChatServer().runserver(config.get('host', '0.0.0.0'), config.get('port', 5005))