diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2010-06-23 11:55:23 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2010-06-23 11:55:23 +0000 |
| commit | 4736e77acfc728176591f677cd2c973ef1d71098 (patch) | |
| tree | dc3d6913df2ba3e5ca3e81986534a7df169e3ff7 /src/HandshakeExtensionMessage.cc | |
| parent | 3e98f0553319033a9a37190870541417ea3f3a1e (diff) | |
2010-06-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Request ut_metadata in end-game mode(in other words, more
aggresively)
* src/HandshakeExtensionMessage.cc
* src/Peer.cc
* src/Peer.h
* src/PeerSessionResource.cc
* src/PeerSessionResource.h
* src/UTMetadataRequestFactory.cc
* test/UTMetadataRequestFactoryTest.cc
Diffstat (limited to 'src/HandshakeExtensionMessage.cc')
| -rw-r--r-- | src/HandshakeExtensionMessage.cc | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/HandshakeExtensionMessage.cc b/src/HandshakeExtensionMessage.cc index 5a743de2..20c2e621 100644 --- a/src/HandshakeExtensionMessage.cc +++ b/src/HandshakeExtensionMessage.cc @@ -123,6 +123,11 @@ void HandshakeExtensionMessage::doReceivedAction() if(metadataSize_ != attrs->metadataSize) { throw DL_ABORT_EX("Wrong metadata_size. Which one is correct!?"); } + if(!peer_->isSeeder()) { + peer_->reconfigureSessionResource(dctx_->getPieceLength(), + dctx_->getTotalLength()); + peer_->setAllBitfield(); + } } else { attrs->metadataSize = metadataSize_; dctx_->getFirstFileEntry()->setLength(metadataSize_); @@ -131,7 +136,9 @@ void HandshakeExtensionMessage::doReceivedAction() SharedHandle<PieceStorage> pieceStorage = dctx_->getOwnerRequestGroup()->getPieceStorage(); - pieceStorage->setEndGamePieceNum(0); + peer_->reconfigureSessionResource(dctx_->getPieceLength(), + dctx_->getTotalLength()); + peer_->setAllBitfield(); } } else if(attrs->metadata.empty()) { throw DL_ABORT_EX("Peer didn't provide metadata_size." |
