浏览代码

Do nothing if block has already acquired.

This happens in end-game mode.
Tatsuhiro Tsujikawa 14 年之前
父节点
当前提交
44c379eaa8
共有 1 个文件被更改,包括 4 次插入0 次删除
  1. 4 0
      src/BtPieceMessage.cc

+ 4 - 0
src/BtPieceMessage.cc

@@ -115,6 +115,10 @@ void BtPieceMessage::doReceivedAction()
                      blockLength_,
                      static_cast<long long int>(offset),
                      static_cast<unsigned long>(slot.getBlockIndex())));
+    if(piece->hasBlock(slot.getBlockIndex())) {
+      A2_LOG_DEBUG("Already have this block.");
+      return;
+    }
     getPieceStorage()->getDiskAdaptor()->writeData
       (block_, blockLength_, offset);
     piece->completeBlock(slot.getBlockIndex());