|
@@ -20,14 +20,17 @@ proxy_protocols = {
|
|
|
if parsed.scheme not in proxy_protocols:
|
|
|
raise TypeError('unsupported proxy protocol: "{}"'.format(parsed.scheme))
|
|
|
|
|
|
-argv = [
|
|
|
- "nc",
|
|
|
- "-X",
|
|
|
- proxy_protocols[parsed.scheme], # Supported protocols are 4 (SOCKS v4), 5 (SOCKS v5) and connect (HTTP proxy). Default SOCKS v5 is used.
|
|
|
- "-x",
|
|
|
- parsed.netloc, # proxy-host:proxy-port
|
|
|
- sys.argv[1], # host
|
|
|
- sys.argv[2], # port
|
|
|
-]
|
|
|
+def make_argv():
|
|
|
+ yield "nc"
|
|
|
+ if sys.platform == 'linux':
|
|
|
+ # caveats: macOS built-in netcat command not supported proxy-type
|
|
|
+ yield "-X" # --proxy-type
|
|
|
+ # Supported protocols are 4 (SOCKS v4), 5 (SOCKS v5) and connect (HTTP proxy).
|
|
|
+ # Default SOCKS v5 is used.
|
|
|
+ yield proxy_protocols[parsed.scheme]
|
|
|
+ yield "-x" # --proxy
|
|
|
+ yield parsed.netloc # proxy-host:proxy-port
|
|
|
+ yield sys.argv[1] # host
|
|
|
+ yield sys.argv[2] # port
|
|
|
|
|
|
-subprocess.call(argv)
|
|
|
+subprocess.call(make_argv())
|