mirror of https://github.com/aria2/aria2
2008-02-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Force refresh bucket when startup if certain time has passed(currently 15 minutes). * src/DHTBucketRefreshTask.{h, cc} * src/DHTSetup.ccpull/1/head
parent
1b7c198289
commit
6fe7b7c8f3
|
@ -1,9 +1,16 @@
|
|||
2008-02-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
||||
|
||||
Force refresh bucket when startup if certain time has passed(currently 15 minutes).
|
||||
* src/DHTBucketRefreshTask.{h, cc}
|
||||
* src/DHTSetup.cc
|
||||
|
||||
2008-02-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
||||
|
||||
Removed "using namespace std;" from all sources. Appended std:: prefix to c++
|
||||
standard classes.
|
||||
Included string.h where mem* function are used.
|
||||
|
||||
Added namespace aria2.
|
||||
|
||||
2008-02-06 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
||||
|
||||
Create directory before saving DHT routing table.
|
||||
|
|
|
@ -44,7 +44,8 @@
|
|||
|
||||
namespace aria2 {
|
||||
|
||||
DHTBucketRefreshTask::DHTBucketRefreshTask() {}
|
||||
DHTBucketRefreshTask::DHTBucketRefreshTask():
|
||||
_forceRefresh(false) {}
|
||||
|
||||
DHTBucketRefreshTask::~DHTBucketRefreshTask() {}
|
||||
|
||||
|
@ -52,7 +53,7 @@ void DHTBucketRefreshTask::startup()
|
|||
{
|
||||
std::deque<SharedHandle<DHTBucket> > buckets = _routingTable->getBuckets();
|
||||
for(std::deque<SharedHandle<DHTBucket> >::iterator i = buckets.begin(); i != buckets.end(); ++i) {
|
||||
if((*i)->needsRefresh()) {
|
||||
if(_forceRefresh || (*i)->needsRefresh()) {
|
||||
(*i)->notifyUpdate();
|
||||
unsigned char targetID[DHT_ID_LENGTH];
|
||||
(*i)->getRandomNodeID(targetID);
|
||||
|
@ -70,4 +71,9 @@ void DHTBucketRefreshTask::startup()
|
|||
_finished = true;
|
||||
}
|
||||
|
||||
void DHTBucketRefreshTask::setForceRefresh(bool forceRefresh)
|
||||
{
|
||||
_forceRefresh = forceRefresh;
|
||||
}
|
||||
|
||||
} // namespace aria2
|
||||
|
|
|
@ -40,12 +40,17 @@
|
|||
namespace aria2 {
|
||||
|
||||
class DHTBucketRefreshTask:public DHTAbstractTask {
|
||||
private:
|
||||
bool _forceRefresh;
|
||||
|
||||
public:
|
||||
DHTBucketRefreshTask();
|
||||
|
||||
virtual ~DHTBucketRefreshTask();
|
||||
|
||||
virtual void startup();
|
||||
|
||||
void setForceRefresh(bool forceRefresh);
|
||||
};
|
||||
|
||||
} // namespace aria2
|
||||
|
|
|
@ -57,6 +57,7 @@
|
|||
#include "DHTTask.h"
|
||||
#include "DHTRoutingTableDeserializer.h"
|
||||
#include "DHTRegistry.h"
|
||||
#include "DHTBucketRefreshTask.h"
|
||||
#include "CUIDCounter.h"
|
||||
#include "prefs.h"
|
||||
#include "Option.h"
|
||||
|
@ -175,7 +176,9 @@ Commands DHTSetup::setup(DownloadEngine* e, const Option* option)
|
|||
routingTable->addNode(*i);
|
||||
}
|
||||
if(!desnodes.empty() && deserializer.getSerializedTime().elapsed(DHT_BUCKET_REFRESH_INTERVAL)) {
|
||||
taskQueue->addPeriodicTask1(taskFactory->createBucketRefreshTask());
|
||||
SharedHandle<DHTBucketRefreshTask> task = taskFactory->createBucketRefreshTask();
|
||||
task->setForceRefresh(true);
|
||||
taskQueue->addPeriodicTask1(task);
|
||||
}
|
||||
|
||||
Commands commands;
|
||||
|
|
Loading…
Reference in New Issue