summaryrefslogtreecommitdiff
path: root/src/AbstractCommand.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/AbstractCommand.cc')
-rw-r--r--src/AbstractCommand.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/AbstractCommand.cc b/src/AbstractCommand.cc
index 27762cc8..c2ead096 100644
--- a/src/AbstractCommand.cc
+++ b/src/AbstractCommand.cc
@@ -148,6 +148,10 @@ bool AbstractCommand::shouldProcess() const
if (socketRecvBuffer_ && !socketRecvBuffer_->bufferEmpty()) {
return true;
}
+
+ if (socket_ && socket_->getRecvBufferedLength()) {
+ return true;
+ }
}
if (checkSocketIsWritable_ && writeEventEnabled()) {
@@ -916,7 +920,8 @@ const std::shared_ptr<PieceStorage>& AbstractCommand::getPieceStorage() const
void AbstractCommand::checkSocketRecvBuffer()
{
- if (socketRecvBuffer_->bufferEmpty()) {
+ if (socketRecvBuffer_->bufferEmpty() &&
+ socket_->getRecvBufferedLength() == 0) {
return;
}