From 78361999d9a057ab444422d98a4a6927c19a0bab Mon Sep 17 00:00:00 2001 From: cdeler Date: Fri, 13 Nov 2020 16:54:54 +0300 Subject: [PATCH] Fixed timeouts in case of https connection establishing --- httpcore/_backends/asyncio.py | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/httpcore/_backends/asyncio.py b/httpcore/_backends/asyncio.py index 32346af3..f32091f9 100644 --- a/httpcore/_backends/asyncio.py +++ b/httpcore/_backends/asyncio.py @@ -107,15 +107,18 @@ async def start_tls( loop_start_tls = getattr(loop, "start_tls", backport_start_tls) - transport = await asyncio.wait_for( - loop_start_tls( - transport, - protocol, - ssl_context, - server_hostname=hostname.decode("ascii"), - ), - timeout=timeout.get("connect"), - ) + exc_map = {asyncio.TimeoutError: ConnectTimeout, OSError: ConnectError} + + with map_exceptions(exc_map): + transport = await asyncio.wait_for( + loop_start_tls( + transport, + protocol, + ssl_context, + server_hostname=hostname.decode("ascii"), + ), + timeout=timeout.get("connect"), + ) stream_reader.set_transport(transport) stream_writer = asyncio.StreamWriter(