Skip to content
This repository was archived by the owner on Oct 9, 2021. It is now read-only.

Commit 7c8afdb

Browse files
committed
force requests to use bundled certifi cacert by default
1 parent 01720a1 commit 7c8afdb

1 file changed

Lines changed: 13 additions & 10 deletions

File tree

wakatime/api.py

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
from .session_cache import SessionCache
2323
from .utils import get_hostname, get_user_agent
2424
from .packages import tzlocal
25+
from .packages import certifi
2526

2627

2728
log = logging.getLogger('WakaTime')
@@ -101,16 +102,12 @@ def send_heartbeats(heartbeats, args, configs, use_ntlm_proxy=False):
101102
should_try_ntlm = '\\' in args.proxy
102103
proxies['https'] = args.proxy
103104

104-
ssl_verify = not args.nosslverify
105-
if args.ssl_certs_file and ssl_verify:
106-
ssl_verify = args.ssl_certs_file
107-
108105
# send request to api
109106
response, code = None, None
110107
try:
111108
response = session.post(api_url, data=request_body, headers=headers,
112109
proxies=proxies, timeout=timeout,
113-
verify=ssl_verify)
110+
verify=_get_verify(args))
114111
except RequestException:
115112
if should_try_ntlm:
116113
return send_heartbeats(heartbeats, args, configs, use_ntlm_proxy=True)
@@ -204,10 +201,6 @@ def get_time_today(args, use_ntlm_proxy=False):
204201
should_try_ntlm = '\\' in args.proxy
205202
proxies['https'] = args.proxy
206203

207-
ssl_verify = not args.nosslverify
208-
if args.ssl_certs_file and ssl_verify:
209-
ssl_verify = args.ssl_certs_file
210-
211204
params = {
212205
'start': 'today',
213206
'end': 'today',
@@ -218,7 +211,7 @@ def get_time_today(args, use_ntlm_proxy=False):
218211
try:
219212
response = session.get(url, params=params, headers=headers,
220213
proxies=proxies, timeout=timeout,
221-
verify=ssl_verify)
214+
verify=_get_verify(args))
222215
except RequestException:
223216
if should_try_ntlm:
224217
return get_time_today(args, use_ntlm_proxy=True)
@@ -282,6 +275,16 @@ def get_time_today(args, use_ntlm_proxy=False):
282275
return None, API_ERROR
283276

284277

278+
def _get_verify(args):
279+
verify = not args.nosslverify
280+
if verify:
281+
if args.ssl_certs_file:
282+
verify = args.ssl_certs_file
283+
else:
284+
verify = certifi.where()
285+
return verify
286+
287+
285288
def _process_server_results(heartbeats, code, content, results, args, configs):
286289
log.debug({
287290
'response_code': code,

0 commit comments

Comments
 (0)