ssl.wrap_socket doesn't support server_hostname. See #572

This commit is contained in:
Matt Martz 2019-02-19 16:56:26 -06:00
parent b43334f1ec
commit 217ce8eff1
1 changed files with 8 additions and 4 deletions

View File

@ -435,14 +435,18 @@ if HTTPSConnection:
SpeedtestHTTPConnection.connect(self) SpeedtestHTTPConnection.connect(self)
kwargs = {}
if ssl: if ssl:
try:
kwargs = {}
if hasattr(ssl, 'SSLContext'): if hasattr(ssl, 'SSLContext'):
kwargs['server_hostname'] = self.host kwargs['server_hostname'] = self.host
try:
self.sock = self._context.wrap_socket(self.sock, **kwargs) self.sock = self._context.wrap_socket(self.sock, **kwargs)
except AttributeError: except AttributeError:
self.sock = ssl.wrap_socket(self.sock, **kwargs) self.sock = ssl.wrap_socket(self.sock)
try:
self.sock.server_hostname = self.host
except AttributeError:
pass
def _build_connection(connection, source_address, timeout, context=None): def _build_connection(connection, source_address, timeout, context=None):