10000 Call out platform-specific branches · python-telegram-bot/urllib3@0ba9a1f · GitHub
[go: up one dir, main page]

Skip to content
This repository was archived by the owner on May 21, 2023. It is now read-only.

Commit 0ba9a1f

Browse files
committed
Call out platform-specific branches
Remove now duplicated code
1 parent c8899f5 commit 0ba9a1f

File tree

1 file changed

+3
-48
lines changed

1 file changed

+3
-48
lines changed

urllib3/util/ssl_.py

Lines changed: 3 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
try:
3636
from ssl import SSLContext # Modern SSL?
3737
except ImportError:
38-
class FakeSSLContext(object):
38+
class FakeSSLContext(object): # Platform-specific: Python 2 & 3.1
3939
def __init__(self, protocol_version):
4040
self.protocol_version = protocol_version
4141
# Use default values from a real SSLContext
@@ -193,56 +193,11 @@ def create_urllib3_context(ssl_version=None, cert_reqs=ssl.CERT_REQUIRED,
193193
context.set_ciphers(ciphers or _RESTRICTED_SERVER_CIPHERS)
194194

195195
context.verify_mode = cert_reqs
196-
context.check_hostname = (context.verify_mode == ssl.CERT_REQUIRED)
196+
if getattr(context, 'check_hostname', None) is not None: # Platform-specific: Python 3.2
197+
context.check_hostname = (context.verify_mode == ssl.CERT_REQUIRED)
197198
return context
198199

199200

200-
if SSLContext is not None: # Python 3.2+
201-
def ssl_wrap_socket_v1(sock, keyfile=None, certfile=None, cert_reqs=None,
202-
ca_certs=None, server_hostname=None,
203-
ssl_version=None, ssl_context=None):
204-
"""
205-
All arguments except `server_hostname` have the same meaning as for
206-
:func:`ssl.wrap_socket`
207-
208-
:param server_hostname:
209-
Hostname of the expected certificate
210-
:param ssl_context:
211-
User-constructed SSLContext object
212-
"""
213-
context = ssl_context
214-
if context is None:
215-
context = create_urllib3_context(ssl_version, cert_reqs)
216-
217-
if ca_certs:
218-
try:
219-
context.load_verify_locations(ca_certs)
220-
# Py32 raises IOError
221-
# Py33 raises FileNotFoundError
222-
except Exception as e: # Reraise as SSLError
223-
raise SSLError(e)
224-
if certfile:
225-
# FIXME: This block needs a test.
226-
context.load_cert_chain(certfile, keyfile)
227-
if HAS_SNI: # Platform-specific: OpenSSL with enabled SNI
228-
return context.wrap_socket(sock, server_hostname=server_hostname)
229-
return context.wrap_socket(sock)
230-
231-
else: # Python 3.1 and earlier
232-
def ssl_wrap_socket_v1(sock, keyfile=None, certfile=None, cert_reqs=None,
233-
ca_certs=None, server_hostname=None,
234-
ssl_version=None, ssl_context=None):
235-
if ssl_context and hasattr(ssl_context, 'wrap_socket'):
236-
wrap = ssl_context.wrap_socket
237-
try:
238-
return wrap(sock, server_hostname=server_hostname)
239-
except TypeError:
240-
return wrap(sock)
241-
242-
return wrap_socket(sock, keyfile=keyfile, certfile=certfile,
243-
ca_certs=ca_certs, cert_reqs=cert_reqs,
244-
ssl_version=ssl_version)
245-
246201
def ssl_wrap_socket(sock, keyfile=None, certfile=None, cert_reqs=None,
247202
ca_certs=None, server_hostname=None,
248203
ssl_version=None, ssl_context=None):

0 commit comments

Comments
 (0)
0