@@ -38,13 +38,15 @@ def __init__(
3838 http_versions : HTTPVersionTypes = None ,
3939 backend : ConcurrencyBackend = None ,
4040 release_func : typing .Optional [ReleaseCallback ] = None ,
41+ uds : typing .Optional [str ] = None ,
4142 ):
4243 self .origin = Origin (origin ) if isinstance (origin , str ) else origin
4344 self .ssl = SSLConfig (cert = cert , verify = verify , trust_env = trust_env )
4445 self .timeout = TimeoutConfig (timeout )
4546 self .http_versions = HTTPVersionConfig (http_versions )
4647 self .backend = AsyncioBackend () if backend is None else backend
4748 self .release_func = release_func
49+ self .uds = uds
4850 self .h11_connection = None # type: typing.Optional[HTTP11Connection]
4951 self .h2_connection = None # type: typing.Optional[HTTP2Connection]
5052
@@ -84,8 +86,21 @@ async def connect(
8486 else :
8587 on_release = functools .partial (self .release_func , self )
8688
87- logger .trace (f"start_connect host={ host !r} port={ port !r} timeout={ timeout !r} " )
88- stream = await self .backend .open_tcp_stream (host , port , ssl_context , timeout )
89+ if self .uds is None :
90+ logger .trace (
91+ f"start_connect tcp host={ host !r} port={ port !r} timeout={ timeout !r} "
92+ )
93+ stream = await self .backend .open_tcp_stream (
94+ host , port , ssl_context , timeout
95+ )
96+ else :
97+ logger .trace (
98+ f"start_connect uds path={ self .uds !r} host={ host !r} timeout={ timeout !r} "
99+ )
100+ stream = await self .backend .open_uds_stream (
101+ self .uds , host , ssl_context , timeout
102+ )
103+
89104 http_version = stream .get_http_version ()
90105 logger .trace (f"connected http_version={ http_version !r} " )
91106
0 commit comments