p2p: fix set_peer_just_seen ignoring last_seen
This commit is contained in:
parent
a1eca8ca7e
commit
aa3e89a2ba
|
@ -110,7 +110,7 @@ namespace nodetool
|
|||
bool get_gray_peer_by_index(peerlist_entry& p, size_t i);
|
||||
template<typename F> bool foreach(bool white, const F &f);
|
||||
void evict_host_from_white_peerlist(const peerlist_entry& pr);
|
||||
bool append_with_peer_white(const peerlist_entry& pr);
|
||||
bool append_with_peer_white(const peerlist_entry& pr, bool trust_last_seen = false);
|
||||
bool append_with_peer_gray(const peerlist_entry& pr);
|
||||
bool append_with_peer_anchor(const anchor_peerlist_entry& ple);
|
||||
bool set_peer_just_seen(peerid_type peer, const epee::net_utils::network_address& addr, uint32_t pruning_seed, uint16_t rpc_port, uint32_t rpc_credits_per_hash);
|
||||
|
@ -329,12 +329,12 @@ namespace nodetool
|
|||
ple.pruning_seed = pruning_seed;
|
||||
ple.rpc_port = rpc_port;
|
||||
ple.rpc_credits_per_hash = rpc_credits_per_hash;
|
||||
return append_with_peer_white(ple);
|
||||
return append_with_peer_white(ple, true);
|
||||
CATCH_ENTRY_L0("peerlist_manager::set_peer_just_seen()", false);
|
||||
}
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
inline
|
||||
bool peerlist_manager::append_with_peer_white(const peerlist_entry& ple)
|
||||
bool peerlist_manager::append_with_peer_white(const peerlist_entry& ple, bool trust_last_seen)
|
||||
{
|
||||
TRY_ENTRY();
|
||||
if(!is_host_allowed(ple.adr))
|
||||
|
@ -357,7 +357,8 @@ namespace nodetool
|
|||
new_ple.pruning_seed = by_addr_it_wt->pruning_seed;
|
||||
if (by_addr_it_wt->rpc_port && ple.rpc_port == 0) // guard against older nodes not passing RPC port around
|
||||
new_ple.rpc_port = by_addr_it_wt->rpc_port;
|
||||
new_ple.last_seen = by_addr_it_wt->last_seen; // do not overwrite the last seen timestamp, incoming peer list are untrusted
|
||||
if (!trust_last_seen)
|
||||
new_ple.last_seen = by_addr_it_wt->last_seen; // do not overwrite the last seen timestamp, incoming peer lists are untrusted
|
||||
m_peers_white.replace(by_addr_it_wt, new_ple);
|
||||
}
|
||||
//remove from gray list, if need
|
||||
|
|
Loading…
Reference in New Issue