summaryrefslogtreecommitdiff
path: root/src/HttpServerBodyCommand.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/HttpServerBodyCommand.cc')
-rw-r--r--src/HttpServerBodyCommand.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/HttpServerBodyCommand.cc b/src/HttpServerBodyCommand.cc
index 2bb9d6d2..3665181e 100644
--- a/src/HttpServerBodyCommand.cc
+++ b/src/HttpServerBodyCommand.cc
@@ -79,7 +79,8 @@ HttpServerBodyCommand::HttpServerBodyCommand(
// To handle Content-Length == 0 case
setStatus(Command::STATUS_ONESHOT_REALTIME);
e_->addSocketForReadCheck(socket_, this);
- if (!httpServer_->getSocketRecvBuffer()->bufferEmpty()) {
+ if (!httpServer_->getSocketRecvBuffer()->bufferEmpty() ||
+ socket_->getRecvBufferedLength()) {
e_->setNoWait(true);
}
}
@@ -178,6 +179,7 @@ bool HttpServerBodyCommand::execute()
}
try {
if (socket_->isReadable(0) || (writeCheck_ && socket_->isWritable(0)) ||
+ socket_->getRecvBufferedLength() ||
!httpServer_->getSocketRecvBuffer()->bufferEmpty() ||
httpServer_->getContentLength() == 0) {
timeoutTimer_ = global::wallclock();