@@ -51,7 +51,7 @@ def schedule(rserver, salgorithm, host_name, port):
51
51
else :
52
52
raise Exception ('Unknown scheduling algorithm' ) #Unreachable
53
53
54
- async def stream_handler (reader , writer , unix , lbind , protos , rserver , cipher , sslserver , authtime = 86400 * 30 , block = None , salgorithm = 'fa' , verbose = DUMMY , modstat = lambda r ,h :lambda i :DUMMY , ** kwargs ):
54
+ async def stream_handler (reader , writer , unix , lbind , protos , rserver , cipher , sslserver , debug = 0 , authtime = 86400 * 30 , block = None , salgorithm = 'fa' , verbose = DUMMY , modstat = lambda r ,h :lambda i :DUMMY , ** kwargs ):
55
55
try :
56
56
reader , writer = proto .sslwrap (reader , writer , sslserver , True , None , verbose )
57
57
if unix :
@@ -92,6 +92,8 @@ async def stream_handler(reader, writer, unix, lbind, protos, rserver, cipher, s
92
92
verbose (f'{ str (ex ) or "Unsupported protocol" } from { remote_ip } ' )
93
93
try : writer .close ()
94
94
except Exception : pass
95
+ if debug :
96
+ raise
95
97
96
98
async def reuse_stream_handler (reader , writer , unix , lbind , protos , rserver , urserver , block , cipher , salgorithm , verbose = DUMMY , modstat = lambda r ,h :lambda i :DUMMY , ** kwargs ):
97
99
try :
@@ -474,7 +476,7 @@ def compile(cls, uri, relay=None):
474
476
cipher .plugins .append (plugin )
475
477
match = cls .compile_rule (url .query ) if url .query else None
476
478
if loc :
477
- host_name , _ , port = loc .partition (':' )
479
+ host_name , _ , port = loc .rpartition (':' )
478
480
port = int (port ) if port else (22 if 'ssh' in rawprotos else 8080 )
479
481
else :
480
482
host_name = port = None
@@ -531,6 +533,7 @@ def main():
531
533
parser .add_argument ('-b' , dest = 'block' , type = ProxyURI .compile_rule , help = 'block regex rules' )
532
534
parser .add_argument ('-a' , dest = 'alived' , default = 0 , type = int , help = 'interval to check remote alive (default: no check)' )
533
535
parser .add_argument ('-s' , dest = 'salgorithm' , default = 'fa' , choices = ('fa' , 'rr' , 'rc' , 'lc' ), help = 'scheduling algorithm (default: first_available)' )
536
+ parser .add_argument ('-d' , dest = 'debug' , action = 'count' , help = 'turn on debug to see tracebacks (default: no debug)' )
534
537
parser .add_argument ('-v' , dest = 'v' , action = 'count' , help = 'print verbose output' )
535
538
parser .add_argument ('--ssl' , dest = 'sslfile' , help = 'certfile[,keyfile] if server listen in ssl mode' )
536
539
parser .add_argument ('--pac' , help = 'http PAC path' )
0 commit comments