def main(): if len(sys.argv) < 5: usage(f = sys.stderr) sys.exit(-1) http_ip = sys.argv[1] http_port = int(sys.argv[2]) socksip = sys.argv[3] socksport = int(sys.argv[4]) opts, args = getopt.gnu_getopt(sys.argv[5:], "hdp:l:", ["help", "debug", "pidfile=", "logfile="]) for o, a in opts: if o == "-h" or o == "--help": usage() sys.exit() if o == "-d" or o == "--debug": options.logginglevel = logging.DEBUG elif o == "-p" or o == "--pidfile": options.daemonize = True options.pidfile = a elif o == "-l" or o == "--logfile": options.daemonize = True options.logfile = a if options.daemonize: pid = os.fork() if pid != 0: # write pidfile by father f = open(options.pidfile, "w") print >> f, pid f.close() sys.exit(0) if options.daemonize: logger = logging.getLogger() logger.setLevel(options.logginglevel) ch = WatchedFileHandler(options.logfile) ch.setFormatter(logging.Formatter('[%(asctime)s][%(name)s][%(levelname)s] - %(message)s')) logger.addHandler(ch) else: logging.basicConfig( format='[%(asctime)s][%(name)s][%(levelname)s] - %(message)s', datefmt='%Y-%d-%m %H:%M:%S', level=options.logginglevel, ) socks = SocksServer(socksip, socksport, SocksRelayFactory(), timeout=30, maxclient=500) socks.start() globalvars.socksip = socksip globalvars.socksport = socksport globalvars.sockstimeout = 60 WSGIServer((http_ip, http_port), meek_server_application, log=None).serve_forever()
def main(): server = SocksServer(addr=('127.0.0.1', 2468)) server.start()