Skip to content

Commit a3dfcdb

Browse files
committed
Update async_normal.hpp
1 parent 2b49830 commit a3dfcdb

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

boost/network/protocol/http/client/connection/async_normal.hpp

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -95,10 +95,12 @@ struct http_async_connection
9595
this->method = method;
9696
boost::uint16_t port_ = port(request);
9797
string_type host_ = host(request);
98+
boost::uint16_t source_port = request.getSourcePort();
99+
98100
resolve_(resolver_, host_, port_,
99101
request_strand_.wrap(boost::bind(
100102
&this_type::handle_resolved, this_type::shared_from_this(),
101-
host_, port_, get_body, callback,
103+
host_, port_, source_port, get_body, callback,
102104
generator, boost::arg<1>(), boost::arg<2>())));
103105
if (timeout_ > 0) {
104106
timer_.expires_from_now(boost::posix_time::seconds(timeout_));
@@ -129,7 +131,7 @@ struct http_async_connection
129131
is_timedout_ = true;
130132
}
131133

132-
void handle_resolved(string_type host, boost::uint16_t port, bool get_body,
134+
void handle_resolved(string_type host, boost::uint16_t port, boost::uint16_t source_port, bool get_body,
133135
body_callback_function_type callback,
134136
body_generator_function_type generator,
135137
boost::system::error_code const& ec,
@@ -141,10 +143,10 @@ struct http_async_connection
141143
resolver_iterator iter = boost::begin(endpoint_range);
142144
asio::ip::tcp::endpoint endpoint(iter->endpoint().address(), port);
143145
delegate_->connect(
144-
endpoint, host,
146+
endpoint, host, source_port,
145147
request_strand_.wrap(boost::bind(
146148
&this_type::handle_connected, this_type::shared_from_this(), host,
147-
port, get_body, callback, generator,
149+
port, source_port, get_body, callback, generator,
148150
std::make_pair(++iter, resolver_iterator()),
149151
placeholders::error)));
150152
} else {
@@ -154,7 +156,7 @@ struct http_async_connection
154156
}
155157
}
156158

157-
void handle_connected(string_type host, boost::uint16_t port, bool get_body,
159+
void handle_connected(string_type host, boost::uint16_t port, boost::uint16_t source_port, bool get_body,
158160
body_callback_function_type callback,
159161
body_generator_function_type generator,
160162
resolver_iterator_pair endpoint_range,
@@ -174,10 +176,10 @@ struct http_async_connection
174176
resolver_iterator iter = boost::begin(endpoint_range);
175177
asio::ip::tcp::endpoint endpoint(iter->endpoint().address(), port);
176178
delegate_->connect(
177-
endpoint, host,
179+
endpoint, host, source_port,
178180
request_strand_.wrap(boost::bind(
179181
&this_type::handle_connected, this_type::shared_from_this(),
180-
host, port, get_body, callback, generator,
182+
host, port, source_port, get_body, callback, generator,
181183
std::make_pair(++iter, resolver_iterator()),
182184
placeholders::error)));
183185
} else {

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy