Skip to content

Commit 5480af8

Browse files
ZyrixSVA-Philipp
andauthored
add socks proxy support (#253)
* add socks proxy support * add socks proxy to mustache template Co-authored-by: Philipp Brandl <[email protected]>
1 parent 0687dbc commit 5480af8

File tree

3 files changed

+27
-2
lines changed

3 files changed

+27
-2
lines changed

nipyapi/nifi/rest.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ def __init__(self, pools_size=4, maxsize=4):
9292
proxy = Configuration().proxy
9393

9494
# https pool manager
95-
if proxy:
95+
if proxy and "socks" not in str(proxy):
9696
self.pool_manager = urllib3.ProxyManager(
9797
num_pools=pools_size,
9898
maxsize=maxsize,
@@ -103,6 +103,17 @@ def __init__(self, pools_size=4, maxsize=4):
103103
ssl_context=ssl_context,
104104
proxy_url=proxy
105105
)
106+
elif proxy and "socks" in str(proxy):
107+
self.pool_manager = urllib3.contrib.socks.SOCKSProxyManager(
108+
num_pools=pools_size,
109+
maxsize=maxsize,
110+
cert_reqs=cert_reqs,
111+
ca_certs=ca_certs,
112+
cert_file=cert_file,
113+
key_file=key_file,
114+
ssl_context=ssl_context,
115+
proxy_url=proxy
116+
)
106117
else:
107118
self.pool_manager = urllib3.PoolManager(
108119
num_pools=pools_size,

requirements.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ lxml>=4.6.2
1515
requests[security]>=2.18
1616
# urllib3, cryptography are handled by requests
1717

18+
# Socks Proxy
19+
pysocks>=1.7.1
20+
1821
# Import Export and Utils implementation
1922
ruamel.yaml==0.16.12
2023

resources/client_gen/swagger_templates/rest.mustache

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ class RESTClientObject(object):
8383
proxy = Configuration().proxy
8484

8585
# https pool manager
86-
if proxy:
86+
if proxy and "socks" not in str(proxy):
8787
self.pool_manager = urllib3.ProxyManager(
8888
num_pools=pools_size,
8989
maxsize=maxsize,
@@ -94,6 +94,17 @@ class RESTClientObject(object):
9494
ssl_context=ssl_context,
9595
proxy_url=proxy
9696
)
97+
elif proxy and "socks" in str(proxy):
98+
self.pool_manager = urllib3.contrib.socks.SOCKSProxyManager(
99+
num_pools=pools_size,
100+
maxsize=maxsize,
101+
cert_reqs=cert_reqs,
102+
ca_certs=ca_certs,
103+
cert_file=cert_file,
104+
key_file=key_file,
105+
ssl_context=ssl_context,
106+
proxy_url=proxy
107+
)
97108
else:
98109
self.pool_manager = urllib3.PoolManager(
99110
num_pools=pools_size,

0 commit comments

Comments
 (0)