mirror of
https://github.com/dashpay/dash.git
synced 2024-12-27 04:52:59 +01:00
Merge bitcoin/bitcoin#25224: Get time less often in AddrManImpl::ResolveCollisions_()
fa27ee88edbf696b7eef2efbfcf1446ec522fd85 Get time less often in AddrManImpl::ResolveCollisions_() (MarcoFalke) Pull request description: First commit split out from https://github.com/bitcoin/bitcoin/pull/24697 ACKs for top commit: sipa: utACK fa27ee88edbf696b7eef2efbfcf1446ec522fd85 fanquake: ACK fa27ee88edbf696b7eef2efbfcf1446ec522fd85 Tree-SHA512: 40c8594d2a5ce02a392ac5f9f120c24c6bcd495b0bcc901fd6064dde9f6123cd109504cee7b612a9555b70cfd7759cbd6cd496d007bb374c27610d01b464191c
This commit is contained in:
parent
e38db57b92
commit
282a981749
@ -679,25 +679,27 @@ void CAddrMan::ResolveCollisions_()
|
|||||||
int id_old = vvTried[tried_bucket][tried_bucket_pos];
|
int id_old = vvTried[tried_bucket][tried_bucket_pos];
|
||||||
CAddrInfo& info_old = mapInfo[id_old];
|
CAddrInfo& info_old = mapInfo[id_old];
|
||||||
|
|
||||||
|
const auto current_time{GetAdjustedTime()};
|
||||||
|
|
||||||
// Has successfully connected in last X hours
|
// Has successfully connected in last X hours
|
||||||
if (GetAdjustedTime() - info_old.nLastSuccess < ADDRMAN_REPLACEMENT_HOURS*(60*60)) {
|
if (current_time - info_old.nLastSuccess < ADDRMAN_REPLACEMENT_HOURS*(60*60)) {
|
||||||
erase_collision = true;
|
erase_collision = true;
|
||||||
} else if (GetAdjustedTime() - info_old.nLastTry < ADDRMAN_REPLACEMENT_HOURS*(60*60)) { // attempted to connect and failed in last X hours
|
} else if (current_time - info_old.nLastTry < ADDRMAN_REPLACEMENT_HOURS*(60*60)) { // attempted to connect and failed in last X hours
|
||||||
|
|
||||||
// Give address at least 60 seconds to successfully connect
|
// Give address at least 60 seconds to successfully connect
|
||||||
if (GetAdjustedTime() - info_old.nLastTry > 60) {
|
if (current_time - info_old.nLastTry > 60) {
|
||||||
LogPrint(BCLog::ADDRMAN, "Replacing %s with %s in tried table\n", info_old.ToString(), info_new.ToString());
|
LogPrint(BCLog::ADDRMAN, "Replacing %s with %s in tried table\n", info_old.ToString(), info_new.ToString());
|
||||||
|
|
||||||
// Replaces an existing address already in the tried table with the new address
|
// Replaces an existing address already in the tried table with the new address
|
||||||
Good_(info_new, false, GetAdjustedTime());
|
Good_(info_new, false, current_time);
|
||||||
erase_collision = true;
|
erase_collision = true;
|
||||||
}
|
}
|
||||||
} else if (GetAdjustedTime() - info_new.nLastSuccess > ADDRMAN_TEST_WINDOW) {
|
} else if (current_time - info_new.nLastSuccess > ADDRMAN_TEST_WINDOW) {
|
||||||
// If the collision hasn't resolved in some reasonable amount of time,
|
// If the collision hasn't resolved in some reasonable amount of time,
|
||||||
// just evict the old entry -- we must not be able to
|
// just evict the old entry -- we must not be able to
|
||||||
// connect to it for some reason.
|
// connect to it for some reason.
|
||||||
LogPrint(BCLog::ADDRMAN, "Unable to test; replacing %s with %s in tried table anyway\n", info_old.ToString(), info_new.ToString());
|
LogPrint(BCLog::ADDRMAN, "Unable to test; replacing %s with %s in tried table anyway\n", info_old.ToString(), info_new.ToString());
|
||||||
Good_(info_new, false, GetAdjustedTime());
|
Good_(info_new, false, current_time);
|
||||||
erase_collision = true;
|
erase_collision = true;
|
||||||
}
|
}
|
||||||
} else { // Collision is not actually a collision anymore
|
} else { // Collision is not actually a collision anymore
|
||||||
|
Loading…
Reference in New Issue
Block a user