gossip new RC's on bfetch

pull/2232/head
dr7ana 5 months ago
parent 61718464ae
commit 38c1008b59

@ -825,7 +825,7 @@ namespace llarp
"Bootstrap seed confirmed RID:{} is registered; approving fetch request and "
"saving RC!",
rid);
node_db->put_rc(remote);
node_db->verify_gossip_bfetch_rc(remote);
}
}

@ -659,8 +659,7 @@ namespace llarp
_router.link_manager().fetch_bootstrap_rcs(
rc,
BootstrapFetchMessage::serialize(_router.router_contact, num_needed),
[this, is_snode = _router.is_service_node(), num_needed = num_needed](
oxen::quic::message m) mutable {
[this, is_snode = _router.is_service_node()](oxen::quic::message m) mutable {
log::critical(logcat, "Received response to BootstrapRC fetch request...");
if (not m)
@ -711,7 +710,7 @@ namespace llarp
"BootstrapRC fetch response from {} returned {}/{} needed RCs",
fetch_source,
num,
num_needed);
MIN_ACTIVE_RCS);
if (not is_snode)
{
@ -972,6 +971,21 @@ namespace llarp
return false;
}
void
NodeDB::verify_gossip_bfetch_rc(const RemoteRC& rc)
{
if (auto maybe = get_rc(rc.router_id()))
{
if (maybe->other_is_newer(rc))
put_rc(rc);
}
else
{
if (put_rc(rc))
_router.link_manager().gossip_rc(_router.local_rid(), rc);
}
}
bool
NodeDB::put_rc_if_newer(RemoteRC rc)
{

@ -581,6 +581,9 @@ namespace llarp
bool
put_rc_if_newer(RemoteRC rc);
void
verify_gossip_bfetch_rc(const RemoteRC& rc);
bool
verify_store_gossip_rc(const RemoteRC& rc);
};

Loading…
Cancel
Save