Skip to content

Commit f926fe6

Browse files
author
Yann
authored
Merge pull request #272 from farmersbusinessnetwork/thehesiod/fix-http-client-leak
fix http leak
2 parents 6126c14 + 21514a9 commit f926fe6

File tree

1 file changed

+14
-12
lines changed

1 file changed

+14
-12
lines changed

datadog/api/http_client.py

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
# 3p
1313
try:
1414
import requests
15+
import requests.adapters
1516
except ImportError:
1617
requests = None
1718

@@ -64,19 +65,20 @@ class RequestClient(HTTPClient):
6465
def request(cls, method, url, headers, params, data, timeout, proxies, verify, max_retries):
6566
"""
6667
"""
67-
# Use a session to set a max_retries parameters
68-
s = requests.Session()
69-
http_adapter = requests.adapters.HTTPAdapter(max_retries=max_retries)
70-
s.mount('https://', http_adapter)
71-
7268
try:
73-
result = s.request(
74-
method, url,
75-
headers=headers, params=params, data=data,
76-
timeout=timeout,
77-
proxies=proxies, verify=verify)
78-
79-
result.raise_for_status()
69+
# Use a session to set a max_retries parameters
70+
with requests.Session() as s:
71+
http_adapter = requests.adapters.HTTPAdapter(max_retries=max_retries)
72+
s.mount('https://', http_adapter)
73+
74+
# Since stream=False we can close the session after this call
75+
result = s.request(
76+
method, url,
77+
headers=headers, params=params, data=data,
78+
timeout=timeout,
79+
proxies=proxies, verify=verify)
80+
81+
result.raise_for_status()
8082

8183
except requests.ConnectionError as e:
8284
raise _remove_context(ClientError(method, url, e))

0 commit comments

Comments
 (0)