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()));
|
A2_LOG_DEBUG(fmt("RTT is %s", util::itos(rtt).c_str()));
|
||||||
message->getRemoteNode()->updateRTT(rtt);
|
message->getRemoteNode()->updateRTT(rtt);
|
||||||
SharedHandle<DHTMessageCallback> callback = entry->getCallback();
|
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);
|
return std::make_pair(message, callback);
|
||||||
} catch(RecoverableException& e) {
|
} catch(RecoverableException& e) {
|
||||||
handleTimeoutEntry(entry);
|
handleTimeoutEntry(entry);
|
||||||
|
|
Loading…
Reference in New Issue