diff options
Diffstat (limited to 'src/AbstractCommand.cc')
| -rw-r--r-- | src/AbstractCommand.cc | 7 |
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; } |
