Skip to content

Commit 2d44811

Browse files
davidfischeragjohnson
authored andcommitted
Only use HostHeaderSSLAdapter for SSL/HTTPS connections (#4498)
* Only use HostHeaderSSLAdapter for SSL/HTTPS connections * Add the default adapter
1 parent 5d8becd commit 2d44811

File tree

2 files changed

+19
-6
lines changed

2 files changed

+19
-6
lines changed

readthedocs/api/client.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import logging
88

99
from django.conf import settings
10-
from requests import Session
10+
import requests
1111
from requests_toolbelt.adapters import host_header_ssl
1212
from slumber import API
1313

@@ -20,8 +20,17 @@
2020

2121

2222
def setup_api():
23-
session = Session()
24-
session.mount(API_HOST, host_header_ssl.HostHeaderSSLAdapter())
23+
session = requests.Session()
24+
if API_HOST.startswith('https'):
25+
# Only use the HostHeaderSSLAdapter for HTTPS connections
26+
adapter_class = host_header_ssl.HostHeaderSSLAdapter
27+
else:
28+
adapter_class = requests.adapters.HTTPAdapter
29+
30+
session.mount(
31+
API_HOST,
32+
adapter_class(max_retries=3),
33+
)
2534
session.headers.update({'Host': PRODUCTION_DOMAIN})
2635
api_config = {
2736
'base_url': '%s/api/v1/' % API_HOST,

readthedocs/restapi/client.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,15 @@ def dumps(self, data):
3737

3838
def setup_api():
3939
session = requests.Session()
40+
if API_HOST.startswith('https'):
41+
# Only use the HostHeaderSSLAdapter for HTTPS connections
42+
adapter_class = host_header_ssl.HostHeaderSSLAdapter
43+
else:
44+
adapter_class = requests.adapters.HTTPAdapter
45+
4046
session.mount(
4147
API_HOST,
42-
host_header_ssl.HostHeaderSSLAdapter(
43-
max_retries=3,
44-
),
48+
adapter_class(max_retries=3),
4549
)
4650
session.headers.update({'Host': PRODUCTION_DOMAIN})
4751
api_config = {

0 commit comments

Comments
 (0)