From 830162d30ae2cf0c83de1281d747e5b937258fa4 Mon Sep 17 00:00:00 2001 From: Michael Vandeberg Date: Wed, 22 Jul 2026 11:49:45 -0600 Subject: [PATCH] Update TLS usage for corosio tls_role and stream-hostname API corosio replaced openssl_stream's handshake_type with a tls_role enum and moved hostname configuration from tls_context to the stream. - handshake(openssl_stream::client/server) -> handshake(tls_role::client/server) - configure the SNI/verify hostname on the stream: tls_connection gains a set_hostname() forwarding to openssl_stream::set_hostname, called on the connection before handshake, instead of mutating a per-connection tls_context copy - include for tls_role --- src/detail/connection_pool.cpp | 16 +++++++++++----- test/unit/detail/connection_pool.cpp | 3 ++- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/detail/connection_pool.cpp b/src/detail/connection_pool.cpp index 08b36e7..8e4eddb 100644 --- a/src/detail/connection_pool.cpp +++ b/src/detail/connection_pool.cpp @@ -23,11 +23,13 @@ #include #include #include +#include #include #include #include #include +#include #include namespace boost @@ -123,7 +125,13 @@ class tls_connection final : public connection capy::io_task<> handshake() { - return stream_.handshake(corosio::openssl_stream::client); + return stream_.handshake(corosio::tls_role::client); + } + + void + set_hostname(std::string_view hostname) + { + stream_.set_hostname(hostname); } bool @@ -361,11 +369,9 @@ connection_pool::connect(urls::url_view url) const if(url.scheme_id() == scheme::https) { - auto tls_ctx = tls_ctx_; - tls_ctx.set_hostname(url.encoded_host()); - auto conn = - std::make_unique(std::move(socket), tls_ctx); + std::make_unique(std::move(socket), tls_ctx_); + conn->set_hostname(url.encoded_host()); auto [hec] = co_await conn->handshake(); if(hec) co_return { hec, {} }; diff --git a/test/unit/detail/connection_pool.cpp b/test/unit/detail/connection_pool.cpp index e9ced0f..a8826e2 100644 --- a/test/unit/detail/connection_pool.cpp +++ b/test/unit/detail/connection_pool.cpp @@ -23,6 +23,7 @@ #include #include #include +#include #include "scripted_net.hpp" #include "test_suite.hpp" @@ -486,7 +487,7 @@ class connection_pool_test { corosio::openssl_stream s{ co_await server.next(), tls_ctx }; auto [hec] = co_await s.handshake( - corosio::openssl_stream::server); + corosio::tls_role::server); BOOST_TEST(!hec); co_await pong(&s);