mirror of https://github.com/aria2/aria2
pull/1/head
parent
da7edb7867
commit
d6100c7507
|
@ -44,36 +44,26 @@ void PeerChokeCommand::optUnchokingPeer(Peers& peers) const {
|
|||
}
|
||||
Peer* peer = peers.front();
|
||||
peer->optUnchoking = true;
|
||||
/*
|
||||
Peers::iterator itr = peers.begin();
|
||||
for(;itr != peers.end(); itr++) {
|
||||
if((*itr)->optUnchoking) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(itr != peers.end()) {
|
||||
(*itr)->optUnchoking = false;
|
||||
itr++;
|
||||
}
|
||||
if(itr == peers.end()) {
|
||||
itr = peers.begin();
|
||||
}
|
||||
(*itr)->optUnchoking = true;
|
||||
*/
|
||||
logger->debug("opt, unchoking %s, delta=%d",
|
||||
peer->ipaddr.c_str(), peer->getDeltaUpload());
|
||||
if(e->torrentMan->isEndGame()) {
|
||||
Peers::iterator itr = peers.begin()+1;
|
||||
for(; itr != peers.end(); itr++) {
|
||||
Peer* peer = *itr;
|
||||
if(peer->amInterested && peer->peerInterested) {
|
||||
peer->optUnchoking = true;
|
||||
logger->debug("opt, unchoking %s, delta=%d",
|
||||
peer->ipaddr.c_str(), peer->getDeltaUpload());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void PeerChokeCommand::setAllPeerResetDeltaUpload(Peers& peers) const {
|
||||
void PeerChokeCommand::setAllPeerResetDelta(Peers& peers) const {
|
||||
for(Peers::iterator itr = peers.begin(); itr != peers.end(); itr++) {
|
||||
Peer* peer = *itr;
|
||||
peer->resetDeltaUpload();
|
||||
}
|
||||
}
|
||||
|
||||
void PeerChokeCommand::setAllPeerResetDeltaDownload(Peers& peers) const {
|
||||
for(Peers::iterator itr = peers.begin(); itr != peers.end(); itr++) {
|
||||
Peer* peer = *itr;
|
||||
peer->resetDeltaDownload();
|
||||
}
|
||||
}
|
||||
|
@ -113,6 +103,7 @@ bool PeerChokeCommand::execute() {
|
|||
Peer* peer = *itr;
|
||||
if(peer->peerInterested) {
|
||||
peer->chokingRequired = false;
|
||||
peer->optUnchoking = false;
|
||||
itr = peers.erase(itr);
|
||||
unchokingCount--;
|
||||
logger->debug("cat01, unchoking %s, delta=%d", peer->ipaddr.c_str(), peer->getDeltaUpload());
|
||||
|
@ -124,6 +115,7 @@ bool PeerChokeCommand::execute() {
|
|||
Peer* peer = *itr;
|
||||
if(!peer->peerInterested) {
|
||||
peer->chokingRequired = false;
|
||||
peer->optUnchoking = false;
|
||||
itr = peers.erase(itr);
|
||||
logger->debug("cat02, unchoking %s, delta=%d", peer->ipaddr.c_str(), peer->getDeltaUpload());
|
||||
break;
|
||||
|
@ -136,11 +128,7 @@ bool PeerChokeCommand::execute() {
|
|||
rotate = 0;
|
||||
}
|
||||
rotate++;
|
||||
if(e->torrentMan->downloadComplete()) {
|
||||
setAllPeerResetDeltaDownload(e->torrentMan->getActivePeers());
|
||||
} else {
|
||||
setAllPeerResetDeltaUpload(e->torrentMan->getActivePeers());
|
||||
}
|
||||
setAllPeerResetDelta(e->torrentMan->getActivePeers());
|
||||
|
||||
SleepCommand* command = new SleepCommand(cuid, e, this, interval);
|
||||
e->commands.push(command);
|
||||
|
|
|
@ -34,8 +34,7 @@ private:
|
|||
void orderByUploadRate(Peers& peers) const;
|
||||
void orderByDownloadRate(Peers& peers) const;
|
||||
void setAllPeerChoked(Peers& peers) const;
|
||||
void setAllPeerResetDeltaUpload(Peers& peers) const;
|
||||
void setAllPeerResetDeltaDownload(Peers& peers) const;
|
||||
void setAllPeerResetDelta(Peers& peers) const;
|
||||
void optUnchokingPeer(Peers& peers) const;
|
||||
|
||||
public:
|
||||
|
|
|
@ -333,7 +333,7 @@ Piece PeerInteractionCommand::getNewPieceAndSendInterest() {
|
|||
PendingMessage pendingMessage(PeerMessage::NOT_INTERESTED, peerConnection);
|
||||
sendMessageQueue->addPendingMessage(pendingMessage);
|
||||
} else {
|
||||
logger->debug("CUID#%d - starting download for piece index=%d", cuid, piece.getIndex());
|
||||
logger->debug("CUID#%d - starting download for piece index=%d (%d/%d completed)", cuid, piece.getIndex(), piece.countCompleteBlock(), piece.countBlock());
|
||||
logger->debug("CUID#%d - try to send interested", cuid);
|
||||
PendingMessage pendingMessage(PeerMessage::INTERESTED, peerConnection);
|
||||
sendMessageQueue->addPendingMessage(pendingMessage);
|
||||
|
|
|
@ -96,8 +96,10 @@ void TorrentDownloadEngine::calculateStatistics() {
|
|||
totalLength = torrentMan->getTotalLength();
|
||||
}
|
||||
|
||||
downloadSpeed = calculateSpeed(sessionDownloadLengthArray[currentCp], elapsed);
|
||||
uploadSpeed = calculateSpeed(sessionUploadLengthArray[currentCp], elapsed);
|
||||
if(elapsed > 0) {
|
||||
downloadSpeed = calculateSpeed(sessionDownloadLengthArray[currentCp], elapsed);
|
||||
uploadSpeed = calculateSpeed(sessionUploadLengthArray[currentCp], elapsed);
|
||||
}
|
||||
|
||||
if(elapsed-lastElapsed >= 1) {
|
||||
avgSpeed = calculateSpeed(sessionDownloadLength,
|
||||
|
|
|
@ -68,6 +68,7 @@ public:
|
|||
|
||||
// returns uploading speed in byte/sec.
|
||||
int getUploadSpeed() const { return uploadSpeed; }
|
||||
int getDownloadSpeed() const { return downloadSpeed; }
|
||||
};
|
||||
|
||||
#endif // _D_TORRENT_DOWNLOAD_ENGINE_H_
|
||||
|
|
Loading…
Reference in New Issue