mirror of https://github.com/aria2/aria2
We don't need to call PeerConnection::sendPendingData() twice when
sending piece message.pull/1/head
parent
3020087a75
commit
acfb290eca
|
@ -180,18 +180,16 @@ void BtPieceMessage::send()
|
||||||
A2_LOG_DEBUG(fmt("msglength = %lu bytes",
|
A2_LOG_DEBUG(fmt("msglength = %lu bytes",
|
||||||
static_cast<unsigned long>(msgHdrLen+blockLength_)));
|
static_cast<unsigned long>(msgHdrLen+blockLength_)));
|
||||||
getPeerConnection()->pushBytes(msgHdr, msgHdrLen);
|
getPeerConnection()->pushBytes(msgHdr, msgHdrLen);
|
||||||
getPeerConnection()->sendPendingData();
|
|
||||||
off_t pieceDataOffset =
|
off_t pieceDataOffset =
|
||||||
(off_t)index_*downloadContext_->getPieceLength()+begin_;
|
(off_t)index_*downloadContext_->getPieceLength()+begin_;
|
||||||
writtenLength = sendPieceData(pieceDataOffset, blockLength_);
|
pushPieceData(pieceDataOffset, blockLength_);
|
||||||
} else {
|
|
||||||
writtenLength = getPeerConnection()->sendPendingData();
|
|
||||||
}
|
}
|
||||||
|
writtenLength = getPeerConnection()->sendPendingData();
|
||||||
getPeer()->updateUploadLength(writtenLength);
|
getPeer()->updateUploadLength(writtenLength);
|
||||||
setSendingInProgress(!getPeerConnection()->sendBufferIsEmpty());
|
setSendingInProgress(!getPeerConnection()->sendBufferIsEmpty());
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t BtPieceMessage::sendPieceData(off_t offset, size_t length) const
|
void BtPieceMessage::pushPieceData(off_t offset, size_t length) const
|
||||||
{
|
{
|
||||||
assert(length <= 16*1024);
|
assert(length <= 16*1024);
|
||||||
unsigned char* buf = new unsigned char[length];
|
unsigned char* buf = new unsigned char[length];
|
||||||
|
@ -204,7 +202,6 @@ size_t BtPieceMessage::sendPieceData(off_t offset, size_t length) const
|
||||||
}
|
}
|
||||||
if(r == static_cast<ssize_t>(length)) {
|
if(r == static_cast<ssize_t>(length)) {
|
||||||
getPeerConnection()->pushBytes(buf, length);
|
getPeerConnection()->pushBytes(buf, length);
|
||||||
return getPeerConnection()->sendPendingData();
|
|
||||||
} else {
|
} else {
|
||||||
throw DL_ABORT_EX(EX_DATA_READ);
|
throw DL_ABORT_EX(EX_DATA_READ);
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,7 +64,7 @@ private:
|
||||||
|
|
||||||
void erasePieceOnDisk(const SharedHandle<Piece>& piece);
|
void erasePieceOnDisk(const SharedHandle<Piece>& piece);
|
||||||
|
|
||||||
size_t sendPieceData(off_t offset, size_t length) const;
|
void pushPieceData(off_t offset, size_t length) const;
|
||||||
public:
|
public:
|
||||||
BtPieceMessage(size_t index = 0, uint32_t begin = 0, size_t blockLength = 0);
|
BtPieceMessage(size_t index = 0, uint32_t begin = 0, size_t blockLength = 0);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue