Commit d4cf144a authored by Marcin Siodelski's avatar Marcin Siodelski
Browse files

[5260] Properly handle EWOULDBLOCK and EAGAIN in Http unit tests.

parent 4f57c8d2
......@@ -168,10 +168,21 @@ public:
[this, request](const boost::system::error_code& ec,
std::size_t bytes_transferred) mutable {
if (ec) {
ADD_FAILURE() << "error occurred while connecting: "
<< ec.message();
io_service_.stop();
return;
if (ec.value() == boost::asio::error::operation_aborted) {
return;
} else if ((ec.value() == boost::asio::error::try_again) ||
(ec.value() == boost::asio::error::would_block)) {
// If we should try again make sure there is no garbage in the
// bytes_transferred.
bytes_transferred = 0;
} else {
ADD_FAILURE() << "error occurred while connecting: "
<< ec.message();
io_service_.stop();
return;
}
}
// Remove the part of the request which has been sent.
......@@ -199,14 +210,21 @@ public:
std::size_t bytes_transferred) {
if (ec) {
// IO service stopped so simply return.
if (ec == boost::asio::error::operation_aborted) {
if (ec.value() == boost::asio::error::operation_aborted) {
return;
}
// Error occurred, bail...
ADD_FAILURE() << "error occurred while receiving HTTP"
" response from the server: " << ec.message();
io_service_.stop();
} else if ((ec.value() == boost::asio::error::try_again) ||
(ec.value() == boost::asio::error::would_block)) {
// If we should try again, make sure that there is no garbage
// in the bytes_transferred.
bytes_transferred = 0;
} else {
// Error occurred, bail...
ADD_FAILURE() << "error occurred while receiving HTTP"
" response from the server: " << ec.message();
io_service_.stop();
}
}
if (bytes_transferred > 0) {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment