summaryrefslogtreecommitdiff
path: root/src/BtPieceMessage.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2013-06-13 21:34:08 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2013-06-13 21:34:08 +0900
commite3506b04fb22c2770487793a2bcf79d0dfbd5ca5 (patch)
tree7d074c86fa64226947e0dd46b56a8a7a3151fe60 /src/BtPieceMessage.cc
parent9eea95945568ecc01221fb827ff211d98207bf79 (diff)
Revert 9eea959 only the parts which affect src/BtPieceMessage.cc
This is because we are not sure that peer has a piece just sending off its block. It should be notified by the peer.
Diffstat (limited to 'src/BtPieceMessage.cc')
-rw-r--r--src/BtPieceMessage.cc18
1 files changed, 3 insertions, 15 deletions
diff --git a/src/BtPieceMessage.cc b/src/BtPieceMessage.cc
index 12ffa2f0..04025f48 100644
--- a/src/BtPieceMessage.cc
+++ b/src/BtPieceMessage.cc
@@ -179,10 +179,8 @@ size_t BtPieceMessage::getMessageHeaderLength()
namespace {
struct PieceSendUpdate : public ProgressUpdate {
- PieceSendUpdate(const SharedHandle<Peer>& peer, size_t headerLength,
- size_t index, const SharedHandle<PieceStorage>& pieceStorage)
- : peer(peer), headerLength(headerLength), index(index),
- pieceStorage(pieceStorage) {}
+ PieceSendUpdate(const SharedHandle<Peer>& peer, size_t headerLength)
+ : peer(peer), headerLength(headerLength) {}
virtual void update(size_t length, bool complete)
{
if(headerLength > 0) {
@@ -191,17 +189,9 @@ struct PieceSendUpdate : public ProgressUpdate {
length -= m;
}
peer->updateUploadLength(length);
- if(complete && !peer->hasPiece(index)) {
- // Update peer's bitfield because peer may not send HAVE message
- // to us.
- peer->updateBitfield(index, 1);
- pieceStorage->addPieceStats(index);
- }
}
SharedHandle<Peer> peer;
size_t headerLength;
- size_t index;
- SharedHandle<PieceStorage> pieceStorage;
};
} // namespace
@@ -234,9 +224,7 @@ void BtPieceMessage::pushPieceData(int64_t offset, int32_t length) const
buf.reset(0);
getPeerConnection()->pushBytes(dbuf, length+MESSAGE_HEADER_LENGTH,
new PieceSendUpdate(getPeer(),
- MESSAGE_HEADER_LENGTH,
- index_,
- getPieceStorage()));
+ MESSAGE_HEADER_LENGTH));
// To avoid upload rate overflow, we update the length here at
// once.
downloadContext_->updateUploadLength(length);