@@ -87,12 +87,11 @@ namespace
8787{
8888const std::string CRLF (" \r\n " );
8989
90- std::string calc_cn_host (const bool secure,
91- const web::http::uri& baseUri,
90+ std::string calc_cn_host (const web::http::uri& baseUri,
9291 const web::http::http_headers& requestHeaders)
9392{
9493 std::string result;
95- if (secure )
94+ if (baseUri. scheme () == U ( " https " ) )
9695 {
9796 const utility::string_t * encResult;
9897 const auto hostHeader = requestHeaders.find (_XPLATSTR (" Host" ));
@@ -472,7 +471,6 @@ class asio_client final : public _http_client_communicator
472471 : _http_client_communicator(std::move(address), std::move(client_config))
473472 , m_resolver(crossplat::threadpool::shared_instance().service())
474473 , m_pool(std::make_shared<asio_connection_pool>())
475- , m_start_with_ssl(base_uri().scheme() == U(" https" ) && !this ->client_config ().proxy().is_specified())
476474 {
477475 }
478476
@@ -482,13 +480,13 @@ class asio_client final : public _http_client_communicator
482480
483481 std::shared_ptr<asio_connection> obtain_connection (const http_request& req)
484482 {
485- std::string cn_host = calc_cn_host (m_start_with_ssl, base_uri (), req.headers ());
483+ std::string cn_host = calc_cn_host (base_uri (), req.headers ());
486484 std::shared_ptr<asio_connection> conn = m_pool->try_acquire (cn_host);
487485 if (conn == nullptr )
488486 {
489487 // Pool was empty. Create a new connection
490488 conn = std::make_shared<asio_connection>(crossplat::threadpool::shared_instance ().service ());
491- if (m_start_with_ssl )
489+ if (base_uri (). scheme () == U ( " https " ) && ! this -> client_config (). proxy (). is_specified () )
492490 {
493491 conn->upgrade_to_ssl (std::move (cn_host), this ->client_config ().get_ssl_context_callback ());
494492 }
@@ -499,13 +497,10 @@ class asio_client final : public _http_client_communicator
499497
500498 virtual pplx::task<http_response> propagate (http_request request) override ;
501499
502- bool start_with_ssl () const CPPREST_NOEXCEPT { return m_start_with_ssl; }
503-
504500 tcp::resolver m_resolver;
505501
506502private:
507503 const std::shared_ptr<asio_connection_pool> m_pool;
508- const bool m_start_with_ssl;
509504};
510505
511506class asio_context final : public request_context, public std::enable_shared_from_this<asio_context>
@@ -941,7 +936,7 @@ class asio_context final : public request_context, public std::enable_shared_fro
941936 void upgrade_to_ssl ()
942937 {
943938 auto & client = static_cast <asio_client&>(*m_http_client);
944- m_connection->upgrade_to_ssl (calc_cn_host (client.start_with_ssl (), client. base_uri (), m_request.headers ()),
939+ m_connection->upgrade_to_ssl (calc_cn_host (client.base_uri (), m_request.headers ()),
945940 client.client_config ().get_ssl_context_callback ());
946941 }
947942
0 commit comments