mirror of https://github.com/aria2/aria2
Drop old node from DHT routing table if node ID has changed.
parent
653951f70a
commit
2dba2f86a4
|
@ -90,6 +90,16 @@ DHTMessageTracker::messageArrived
|
|||
A2_LOG_DEBUG(fmt("RTT is %s", util::itos(rtt).c_str()));
|
||||
message->getRemoteNode()->updateRTT(rtt);
|
||||
SharedHandle<DHTMessageCallback> callback = entry->getCallback();
|
||||
if(!(*targetNode == *message->getRemoteNode())) {
|
||||
// Node ID has changed. Drop previous node ID from
|
||||
// DHTRoutingTable
|
||||
A2_LOG_DEBUG
|
||||
(fmt("Node ID has changed: old:%s, new:%s",
|
||||
util::toHex(targetNode->getID(), DHT_ID_LENGTH).c_str(),
|
||||
util::toHex(message->getRemoteNode()->getID(),
|
||||
DHT_ID_LENGTH).c_str()));
|
||||
routingTable_->dropNode(targetNode);
|
||||
}
|
||||
return std::make_pair(message, callback);
|
||||
} catch(RecoverableException& e) {
|
||||
handleTimeoutEntry(entry);
|
||||
|
|
Loading…
Reference in New Issue