Merge pull request #7275

f815740 p2p: make REQUEST_SUPPORT_FLAGS optional, pass flags in node data (moneromooo-monero)
This commit is contained in:
luigi1111 2021-02-15 21:48:48 -05:00
commit 0bbaa9df81
No known key found for this signature in database
GPG key ID: F4ACA0183641E010
2 changed files with 15 additions and 8 deletions

View file

@ -1165,6 +1165,7 @@ namespace nodetool
pi = context.peer_id = rsp.node_data.peer_id; pi = context.peer_id = rsp.node_data.peer_id;
context.m_rpc_port = rsp.node_data.rpc_port; context.m_rpc_port = rsp.node_data.rpc_port;
context.m_rpc_credits_per_hash = rsp.node_data.rpc_credits_per_hash; context.m_rpc_credits_per_hash = rsp.node_data.rpc_credits_per_hash;
context.support_flags = rsp.node_data.support_flags;
const auto azone = context.m_remote_address.get_zone(); const auto azone = context.m_remote_address.get_zone();
network_zone& zone = m_network_zones.at(azone); network_zone& zone = m_network_zones.at(azone);
zone.m_peerlist.set_peer_just_seen(rsp.node_data.peer_id, context.m_remote_address, context.m_pruning_seed, context.m_rpc_port, context.m_rpc_credits_per_hash); zone.m_peerlist.set_peer_just_seen(rsp.node_data.peer_id, context.m_remote_address, context.m_pruning_seed, context.m_rpc_port, context.m_rpc_credits_per_hash);
@ -1198,10 +1199,11 @@ namespace nodetool
} }
else if (!just_take_peerlist) else if (!just_take_peerlist)
{ {
try_get_support_flags(context_, [](p2p_connection_context& flags_context, const uint32_t& support_flags) if (context_.support_flags == 0)
{ try_get_support_flags(context_, [](p2p_connection_context& flags_context, const uint32_t& support_flags)
flags_context.support_flags = support_flags; {
}); flags_context.support_flags = support_flags;
});
} }
return hsh_result; return hsh_result;
@ -2179,6 +2181,7 @@ namespace nodetool
node_data.rpc_port = zone.m_can_pingback ? m_rpc_port : 0; node_data.rpc_port = zone.m_can_pingback ? m_rpc_port : 0;
node_data.rpc_credits_per_hash = zone.m_can_pingback ? m_rpc_credits_per_hash : 0; node_data.rpc_credits_per_hash = zone.m_can_pingback ? m_rpc_credits_per_hash : 0;
node_data.network_id = m_network_id; node_data.network_id = m_network_id;
node_data.support_flags = zone.m_config.m_support_flags;
return true; return true;
} }
//----------------------------------------------------------------------------------- //-----------------------------------------------------------------------------------
@ -2549,6 +2552,7 @@ namespace nodetool
context.m_in_timedsync = false; context.m_in_timedsync = false;
context.m_rpc_port = arg.node_data.rpc_port; context.m_rpc_port = arg.node_data.rpc_port;
context.m_rpc_credits_per_hash = arg.node_data.rpc_credits_per_hash; context.m_rpc_credits_per_hash = arg.node_data.rpc_credits_per_hash;
context.support_flags = arg.node_data.support_flags;
if(arg.node_data.my_port && zone.m_can_pingback) if(arg.node_data.my_port && zone.m_can_pingback)
{ {
@ -2582,10 +2586,11 @@ namespace nodetool
}); });
} }
try_get_support_flags(context, [](p2p_connection_context& flags_context, const uint32_t& support_flags) if (context.support_flags == 0)
{ try_get_support_flags(context, [](p2p_connection_context& flags_context, const uint32_t& support_flags)
flags_context.support_flags = support_flags; {
}); flags_context.support_flags = support_flags;
});
//fill response //fill response
zone.m_peerlist.get_peerlist_head(rsp.local_peerlist_new, true); zone.m_peerlist.get_peerlist_head(rsp.local_peerlist_new, true);

View file

@ -188,6 +188,7 @@ namespace nodetool
uint16_t rpc_port; uint16_t rpc_port;
uint32_t rpc_credits_per_hash; uint32_t rpc_credits_per_hash;
peerid_type peer_id; peerid_type peer_id;
uint32_t support_flags;
BEGIN_KV_SERIALIZE_MAP() BEGIN_KV_SERIALIZE_MAP()
KV_SERIALIZE_VAL_POD_AS_BLOB(network_id) KV_SERIALIZE_VAL_POD_AS_BLOB(network_id)
@ -195,6 +196,7 @@ namespace nodetool
KV_SERIALIZE(my_port) KV_SERIALIZE(my_port)
KV_SERIALIZE_OPT(rpc_port, (uint16_t)(0)) KV_SERIALIZE_OPT(rpc_port, (uint16_t)(0))
KV_SERIALIZE_OPT(rpc_credits_per_hash, (uint32_t)0) KV_SERIALIZE_OPT(rpc_credits_per_hash, (uint32_t)0)
KV_SERIALIZE_OPT(support_flags, (uint32_t)0)
END_KV_SERIALIZE_MAP() END_KV_SERIALIZE_MAP()
}; };