summaryrefslogtreecommitdiff
path: root/src/BtHaveMessage.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2009-07-06 15:22:06 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2009-07-06 15:22:06 +0000
commit5f966f632765117368c73b83152281f06706f1e4 (patch)
tree40796ab5d6aa4597c82ce8edbee2d885c1bd48fe /src/BtHaveMessage.cc
parentdb84b1b65237acfe5a231bea2dd28c3795400f33 (diff)
2009-07-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Disconnect seeder if client is also in seed state. * src/BtBitfieldMessage.cc * src/BtHaveAllMessage.cc * src/BtHaveMessage.cc * src/message.h * test/BtBitfieldMessageTest.cc * test/BtHaveAllMessageTest.cc * test/BtHaveMessageTest.cc * test/MockPieceStorage.h
Diffstat (limited to 'src/BtHaveMessage.cc')
-rw-r--r--src/BtHaveMessage.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/BtHaveMessage.cc b/src/BtHaveMessage.cc
index 6641f6a0..35317665 100644
--- a/src/BtHaveMessage.cc
+++ b/src/BtHaveMessage.cc
@@ -35,6 +35,8 @@
#include "BtHaveMessage.h"
#include "Peer.h"
#include "PieceStorage.h"
+#include "message.h"
+#include "DlAbortEx.h"
namespace aria2 {
@@ -50,6 +52,9 @@ void BtHaveMessage::doReceivedAction()
{
peer->updateBitfield(getIndex(), 1);
pieceStorage->addPieceStats(getIndex());
+ if(peer->isSeeder() && pieceStorage->downloadFinished()) {
+ throw DL_ABORT_EX(MSG_GOOD_BYE_SEEDER);
+ }
}
} // namespace aria2