8000 ref: Make HTTP transport extensible (#235) · etherscan-io/sentry-python@f0c8edb · GitHub
[go: up one dir, main page]

Skip to content

Commit f0c8edb

Browse files
authored
ref: Make HTTP transport extensible (getsentry#235)
1 parent ea1c50d commit f0c8edb

File tree

1 file changed

+25
-22
lines changed

1 file changed

+25
-22
lines changed

sentry_sdk/transport.py

Lines changed: 25 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -18,24 +18,6 @@
1818
from urllib import getproxies
1919

2020

21-
def _make_pool(parsed_dsn, http_proxy, https_proxy, ca_certs):
22-
# Use http_proxy if scheme is https and https_proxy is not set
23-
proxy = parsed_dsn.scheme == "https" and https_proxy or http_proxy
24-
if not proxy:
25-
proxy = getproxies().get(parsed_dsn.scheme)
26-
27-
opts = {
28-
"num_pools": 2,
29-
"cert_reqs": "CERT_REQUIRED",
30-
"ca_certs": ca_certs or certifi.where(),
31-
}
32-
33-
if proxy:
34-
return urllib3.ProxyManager(proxy, **opts)
35-
else:
36-
return urllib3.PoolManager(**opts)
37-
38-
3921
class Transport(object):
4022
"""Baseclass for all transports.
4123
@@ -90,15 +72,16 @@ def __init__(self, options):
9072
Transport.__init__(self, options)
9173
self._worker = BackgroundWorker()
9274
self._auth = self.parsed_dsn.to_auth("sentry.python/%s" % VERSION)
93-
self._pool = _make_pool(
75+
self._disabled_until = None
76+
self._retry = urllib3.util.Retry()
77+
self.options = options
78+
79+
self._pool = self._make_pool(
9480
self.parsed_dsn,
9581
http_proxy=options["http_proxy"],
9682
https_proxy=options["https_proxy"],
9783
ca_certs=options["ca_certs"],
9884
)
99-
self._disabled_until = None
100-
self._retry = urllib3.util.Retry()
101-
self.options = options
10285

10386
from sentry_sdk import Hub
10487

@@ -148,6 +131,26 @@ def _send_event(self, event):
148131

149132
self._disabled_until = None
150133

134+
def _get_pool_options(self, ca_certs):
135+
return {
136+
"num_pools": 2,
137+
"cert_reqs": "CERT_REQUIRED",
138+
"ca_certs": ca_certs or certifi.where(),
139+
}
140+
141+
def _make_pool(self, parsed_dsn, http_proxy, https_proxy, ca_certs):
142+
# Use http_proxy if scheme is https and https_proxy is not set
143+
proxy = parsed_dsn.scheme == "https" and https_proxy or http_proxy
144+
if not proxy:
145+
proxy = getproxies().get(parsed_dsn.scheme)
146+
147+
opts = self._get_pool_options(ca_certs)
148+
149+
if proxy:
150+
return urllib3.ProxyManager(proxy, **opts)
151+
else:
152+
return urllib3.PoolManager(**opts)
153+
151154
def capture_event(self, event):
152155
hub = self.hub_cls.current
153156

0 commit comments

Comments
 (0)
0