summaryrefslogtreecommitdiff
path: root/src/HaveEraseCommand.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/HaveEraseCommand.cc')
-rw-r--r--src/HaveEraseCommand.cc13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/HaveEraseCommand.cc b/src/HaveEraseCommand.cc
index 30bacfc4..51ef9a53 100644
--- a/src/HaveEraseCommand.cc
+++ b/src/HaveEraseCommand.cc
@@ -37,6 +37,7 @@
#include "RequestGroupMan.h"
#include "PieceStorage.h"
#include "RequestGroup.h"
+#include "wallclock.h"
namespace aria2 {
@@ -58,13 +59,19 @@ void HaveEraseCommand::preProcess()
void HaveEraseCommand::process()
{
- const RequestGroupList& groups =
+ // we are making a copy of current wallclock.
+ auto expiry = global::wallclock();
+ expiry.advance(5_s);
+
+ const auto& groups =
getDownloadEngine()->getRequestGroupMan()->getRequestGroups();
for (auto& group : groups) {
const auto& ps = group->getPieceStorage();
- if (ps) {
- ps->removeAdvertisedPiece(5_s);
+ if (!ps) {
+ continue;
}
+
+ ps->removeAdvertisedPiece(expiry);
}
}