From 5d3e11e745749692df0f5eff363fceb587090b7d Mon Sep 17 00:00:00 2001 From: Arturo Bernal Date: Thu, 19 Mar 2026 16:57:17 +0100 Subject: [PATCH] HTTPCLIENT-2417 Honor TlsConfig attachment in async connect path Make PoolingAsyncClientConnectionManager.connect() use the provided TlsConfig for direct TLS connections. --- .../impl/nio/PoolingAsyncClientConnectionManager.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/nio/PoolingAsyncClientConnectionManager.java b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/nio/PoolingAsyncClientConnectionManager.java index 48180774b2..9dc85b5bc2 100644 --- a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/nio/PoolingAsyncClientConnectionManager.java +++ b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/nio/PoolingAsyncClientConnectionManager.java @@ -490,6 +490,15 @@ public Future connect( if (LOG.isDebugEnabled()) { LOG.debug("{} connecting endpoint to {} ({})", ConnPoolSupport.getId(endpoint), firstHop, connectTimeout); } + final Object connectAttachment; + if (route.isTunnelled()) { + connectAttachment = null; + } else if (attachment instanceof TlsConfig) { + connectAttachment = attachment; + } else { + connectAttachment = resolveTlsConfig(route.getTargetHost()); + } + final Future connectFuture = connectionOperator.connect( connectionInitiator, firstHop, @@ -497,7 +506,7 @@ public Future connect( route.getTargetName(), route.getLocalSocketAddress(), connectTimeout, - route.isTunnelled() ? null : resolveTlsConfig(route.getTargetHost()), + connectAttachment, context, new FutureCallback() {