mirror of https://github.com/aria2/aria2
To fix the bug that causes the number of bytes uploaded is not
saved to .aria2 file: * src/DefaultPeerStorage.h (removedPeerSessionDownloadLength): New variable. (removedPeerSessionUploadLength): New variable. * src/DefaultPeerStorage.cc (DefaultPieceStorage): Added removedPeerSessionDownloadLength(0), removedPeerSessionUploadLength(0). (calculateStat): Calculate the number of bytes downloaded(uploaded) through all peers, and then add removedPeerSessionDownloadLength( removedPeerSessionUploadLength) to it. (deleteUnusedPeer): Add the number of bytes downloaded(uploaded) from (to) the peer to removedPeerSessionDownloadLength (removedPeerSessionUploadLength).pull/1/head
parent
9b48e350c6
commit
b14e4a5ac1
21
ChangeLog
21
ChangeLog
|
@ -34,6 +34,27 @@
|
||||||
(setGlobalSignalHandler): New function.
|
(setGlobalSignalHandler): New function.
|
||||||
* src/UrlRequestInfo.cc:
|
* src/UrlRequestInfo.cc:
|
||||||
setSignalHander -> Util::setGlobalSignalHandler
|
setSignalHander -> Util::setGlobalSignalHandler
|
||||||
|
|
||||||
|
Reset peer status in order to exit gracefully:
|
||||||
|
|
||||||
|
* src/PeerAbstractCommand.cc
|
||||||
|
(execute): Call peer->resetStatus() when btRuntime->isHalt() is true.
|
||||||
|
|
||||||
|
To fix the bug that causes the number of bytes uploaded is not saved
|
||||||
|
to .aria2 file:
|
||||||
|
|
||||||
|
* src/DefaultPeerStorage.h
|
||||||
|
(removedPeerSessionDownloadLength): New variable.
|
||||||
|
(removedPeerSessionUploadLength): New variable.
|
||||||
|
* src/DefaultPeerStorage.cc
|
||||||
|
(DefaultPieceStorage): Added removedPeerSessionDownloadLength(0),
|
||||||
|
removedPeerSessionUploadLength(0).
|
||||||
|
(calculateStat): Calculate the number of bytes downloaded(uploaded)
|
||||||
|
through all peers, and then add removedPeerSessionDownloadLength(
|
||||||
|
removedPeerSessionUploadLength) to it.
|
||||||
|
(deleteUnusedPeer): Add the number of bytes downloaded(uploaded) from
|
||||||
|
(to) the peer to removedPeerSessionDownloadLength
|
||||||
|
(removedPeerSessionUploadLength).
|
||||||
|
|
||||||
2006-11-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
2006-11-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,9 @@ DefaultPeerStorage::DefaultPeerStorage(BtContextHandle btContext,
|
||||||
option(option),
|
option(option),
|
||||||
maxPeerListSize(MAX_PEER_LIST_SIZE),
|
maxPeerListSize(MAX_PEER_LIST_SIZE),
|
||||||
peerEntryIdCounter(0),
|
peerEntryIdCounter(0),
|
||||||
btRuntime(BT_RUNTIME(btContext))
|
btRuntime(BT_RUNTIME(btContext)),
|
||||||
|
removedPeerSessionDownloadLength(0),
|
||||||
|
removedPeerSessionUploadLength(0)
|
||||||
{
|
{
|
||||||
logger = LogFactory::getInstance();
|
logger = LogFactory::getInstance();
|
||||||
}
|
}
|
||||||
|
@ -154,9 +156,14 @@ TransferStat DefaultPeerStorage::calculateStat() {
|
||||||
PeerHandle& peer = *itr;
|
PeerHandle& peer = *itr;
|
||||||
stat.downloadSpeed += peer->calculateDownloadSpeed();
|
stat.downloadSpeed += peer->calculateDownloadSpeed();
|
||||||
stat.uploadSpeed += peer->calculateUploadSpeed();
|
stat.uploadSpeed += peer->calculateUploadSpeed();
|
||||||
|
}
|
||||||
|
for(Peers::iterator itr = peers.begin(); itr != peers.end(); itr++) {
|
||||||
|
PeerHandle& peer = *itr;
|
||||||
stat.sessionDownloadLength += peer->getSessionDownloadLength();
|
stat.sessionDownloadLength += peer->getSessionDownloadLength();
|
||||||
stat.sessionUploadLength += peer->getSessionUploadLength();
|
stat.sessionUploadLength += peer->getSessionUploadLength();
|
||||||
}
|
}
|
||||||
|
stat.sessionDownloadLength += removedPeerSessionDownloadLength;
|
||||||
|
stat.sessionUploadLength += removedPeerSessionUploadLength;
|
||||||
return stat;
|
return stat;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -165,6 +172,9 @@ void DefaultPeerStorage::deleteUnusedPeer(int delSize) {
|
||||||
itr != peers.end() && delSize > 0;) {
|
itr != peers.end() && delSize > 0;) {
|
||||||
const PeerHandle& p = *itr;
|
const PeerHandle& p = *itr;
|
||||||
if(p->cuid == 0) {
|
if(p->cuid == 0) {
|
||||||
|
// Update removedPeerSession******Length
|
||||||
|
removedPeerSessionDownloadLength += p->getSessionDownloadLength();
|
||||||
|
removedPeerSessionUploadLength += p->getSessionUploadLength();
|
||||||
itr = peers.erase(itr);
|
itr = peers.erase(itr);
|
||||||
delSize--;
|
delSize--;
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -53,6 +53,8 @@ private:
|
||||||
int peerEntryIdCounter;
|
int peerEntryIdCounter;
|
||||||
Logger* logger;
|
Logger* logger;
|
||||||
BtRuntimeHandle btRuntime;
|
BtRuntimeHandle btRuntime;
|
||||||
|
long long int removedPeerSessionDownloadLength;
|
||||||
|
long long int removedPeerSessionUploadLength;
|
||||||
public:
|
public:
|
||||||
DefaultPeerStorage(BtContextHandle btContext, const Option* option);
|
DefaultPeerStorage(BtContextHandle btContext, const Option* option);
|
||||||
virtual ~DefaultPeerStorage();
|
virtual ~DefaultPeerStorage();
|
||||||
|
|
|
@ -60,6 +60,7 @@ PeerAbstractCommand::~PeerAbstractCommand() {
|
||||||
|
|
||||||
bool PeerAbstractCommand::execute() {
|
bool PeerAbstractCommand::execute() {
|
||||||
if(btRuntime->isHalt()) {
|
if(btRuntime->isHalt()) {
|
||||||
|
peer->resetStatus();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
|
|
Loading…
Reference in New Issue