return;
}
+ bool expect_continue = (message[http::field::expect] == "100-continue");
+
{
auto lock = pause_mutex.async_lock_shared(yield[ec]);
if (ec == boost::asio::error::operation_aborted) {
<< log_header{message, http::field::range} << " latency="
<< latency << dendl;
}
+
+ if (real_client.sent_100_continue()) {
+ expect_continue = false;
+ }
}
if (!parser.keep_alive()) {
// if we failed before reading the entire message, discard any remaining
// bytes before reading the next
- while (!parser.is_done()) {
+ while (!expect_continue && !parser.is_done()) {
static std::array<char, 1024> discard_buffer;
auto& body = parser.get().body();