Skip to content

Commit bbc36f7

Browse files
rmyers808rmyers808
andauthored
allow loopback server and client to work without an interface address (#5)
Co-authored-by: rmyers808 <Richard.Myers@spirentcom.com>
1 parent cfcdbbf commit bbc36f7

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

Release/src/http/client/http_client_asio.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -582,7 +582,8 @@ class asio_context final : public request_context, public std::enable_shared_fro
582582

583583
m_context->m_timer.start();
584584

585-
tcp::resolver::query query(utility::conversions::to_utf8string(proxy_host), to_string(proxy_port));
585+
// Allow client to work on loopback address overriding default asio address_configured flag
586+
tcp::resolver::query query(utility::conversions::to_utf8string(proxy_host), to_string(proxy_port), boost::asio::ip::resolver_query_base::flags());
586587

587588
auto client = std::static_pointer_cast<asio_client>(m_context->m_http_client);
588589
client->m_resolver.async_resolve(query,
@@ -869,7 +870,8 @@ class asio_context final : public request_context, public std::enable_shared_fro
869870
auto tcp_host = proxy_type == http_proxy_type::http ? proxy_host : host;
870871
auto tcp_port = proxy_type == http_proxy_type::http ? proxy_port : port;
871872

872-
tcp::resolver::query query(tcp_host, to_string(tcp_port));
873+
// Allow client to work on loopback address overriding default asio address_configured flag
874+
tcp::resolver::query query(tcp_host, to_string(tcp_port), boost::asio::ip::resolver_query_base::flags());
873875
auto client = std::static_pointer_cast<asio_client>(ctx->m_http_client);
874876
client->m_resolver.async_resolve(query,
875877
boost::bind(&asio_context::handle_resolve,

Release/src/http/listener/http_server_asio.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -514,9 +514,12 @@ void hostport_listener::start()
514514
auto& service = crossplat::threadpool::shared_instance().service();
515515
tcp::resolver resolver(service);
516516
// #446: boost resolver does not recognize "+" as a host wildchar
517+
518+
// Merge release 1.14 change #1145
519+
// Allow server to work on loopback address overriding default asio address_configured flag
517520
tcp::resolver::query query = ( "+" == m_host)?
518-
tcp::resolver::query(m_port):
519-
tcp::resolver::query(m_host, m_port);
521+
tcp::resolver::query(m_port, boost::asio::ip::resolver_query_base::flags()):
522+
tcp::resolver::query(m_host, m_port, boost::asio::ip::resolver_query_base::flags());
520523

521524
tcp::endpoint endpoint = *resolver.resolve(query);
522525

0 commit comments

Comments
 (0)