@@ -87,12 +87,11 @@ namespace
87
87
{
88
88
const std::string CRLF (" \r\n " );
89
89
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,
92
91
const web::http::http_headers& requestHeaders)
93
92
{
94
93
std::string result;
95
- if (secure )
94
+ if (baseUri. scheme () == U ( " https " ) )
96
95
{
97
96
const utility::string_t * encResult;
98
97
const auto hostHeader = requestHeaders.find (_XPLATSTR (" Host" ));
@@ -472,7 +471,6 @@ class asio_client final : public _http_client_communicator
472
471
: _http_client_communicator(std::move(address), std::move(client_config))
473
472
, m_resolver(crossplat::threadpool::shared_instance().service())
474
473
, m_pool(std::make_shared<asio_connection_pool>())
475
- , m_start_with_ssl(base_uri().scheme() == U(" https" ) && !this ->client_config ().proxy().is_specified())
476
474
{
477
475
}
478
476
@@ -482,13 +480,13 @@ class asio_client final : public _http_client_communicator
482
480
483
481
std::shared_ptr<asio_connection> obtain_connection (const http_request& req)
484
482
{
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 ());
486
484
std::shared_ptr<asio_connection> conn = m_pool->try_acquire (cn_host);
487
485
if (conn == nullptr )
488
486
{
489
487
// Pool was empty. Create a new connection
490
488
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 () )
492
490
{
493
491
conn->upgrade_to_ssl (std::move (cn_host), this ->client_config ().get_ssl_context_callback ());
494
492
}
@@ -499,13 +497,10 @@ class asio_client final : public _http_client_communicator
499
497
500
498
virtual pplx::task<http_response> propagate (http_request request) override ;
501
499
502
- bool start_with_ssl () const CPPREST_NOEXCEPT { return m_start_with_ssl; }
503
-
504
500
tcp::resolver m_resolver;
505
501
506
502
private:
507
503
const std::shared_ptr<asio_connection_pool> m_pool;
508
- const bool m_start_with_ssl;
509
504
};
510
505
511
506
class 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
941
936
void upgrade_to_ssl ()
942
937
{
943
938
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 ()),
945
940
client.client_config ().get_ssl_context_callback ());
946
941
}
947
942
0 commit comments