fix signal
This commit is contained in:
parent
714eca1411
commit
0a16938f9b
@ -148,7 +148,8 @@ impl DiscoveryContext {
|
|||||||
entry.with(rti, move |_rti, e| {
|
entry.with(rti, move |_rti, e| {
|
||||||
e.node_info(routing_domain)
|
e.node_info(routing_domain)
|
||||||
.map(|ni| {
|
.map(|ni| {
|
||||||
ni.has_capability(CAP_VALIDATE_DIAL_INFO) && ni.is_signal_capable()
|
ni.has_capability(CAP_VALIDATE_DIAL_INFO)
|
||||||
|
&& ni.is_fully_direct_inbound()
|
||||||
})
|
})
|
||||||
.unwrap_or(false)
|
.unwrap_or(false)
|
||||||
})
|
})
|
||||||
|
@ -112,8 +112,8 @@ impl RoutingTable {
|
|||||||
let can_serve_as_relay = e
|
let can_serve_as_relay = e
|
||||||
.node_info(RoutingDomain::PublicInternet)
|
.node_info(RoutingDomain::PublicInternet)
|
||||||
.map(|n| {
|
.map(|n| {
|
||||||
if !(n.has_capability(CAP_RELAY) && n.is_signal_capable()) {
|
if !(n.has_capability(CAP_RELAY) && n.is_fully_direct_inbound()) {
|
||||||
// Needs to be able to signal and relay
|
// Needs to be able to accept packets to relay directly
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -211,15 +211,8 @@ impl NodeInfo {
|
|||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Can this node assist with signalling? Yes but only if it doesn't require signalling, itself.
|
/// Can direct connections be made
|
||||||
/// Also used to determine if nodes are capable of validation of dial info, as that operation
|
pub fn is_fully_direct_inbound(&self) -> bool {
|
||||||
/// has the same requirements, inbound capability and a dial info that requires no assistance
|
|
||||||
pub fn is_signal_capable(&self) -> bool {
|
|
||||||
// Has capability?
|
|
||||||
if !self.has_capability(CAP_SIGNAL) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Must be inbound capable
|
// Must be inbound capable
|
||||||
if !matches!(self.network_class, NetworkClass::InboundCapable) {
|
if !matches!(self.network_class, NetworkClass::InboundCapable) {
|
||||||
return false;
|
return false;
|
||||||
|
@ -41,7 +41,8 @@ impl RPCProcessor {
|
|||||||
let routing_table = self.routing_table();
|
let routing_table = self.routing_table();
|
||||||
{
|
{
|
||||||
if let Some(opi) = routing_table.get_own_peer_info(msg.header.routing_domain()) {
|
if let Some(opi) = routing_table.get_own_peer_info(msg.header.routing_domain()) {
|
||||||
if !opi.signed_node_info().node_info().is_signal_capable() {
|
let ni = opi.signed_node_info().node_info();
|
||||||
|
if !ni.has_capability(CAP_SIGNAL) {
|
||||||
return Ok(NetworkResult::service_unavailable(
|
return Ok(NetworkResult::service_unavailable(
|
||||||
"signal is not available",
|
"signal is not available",
|
||||||
));
|
));
|
||||||
|
@ -72,7 +72,7 @@ impl RPCProcessor {
|
|||||||
{
|
{
|
||||||
if let Some(opi) = routing_table.get_own_peer_info(detail.routing_domain) {
|
if let Some(opi) = routing_table.get_own_peer_info(detail.routing_domain) {
|
||||||
let ni = opi.signed_node_info().node_info();
|
let ni = opi.signed_node_info().node_info();
|
||||||
if !ni.has_capability(CAP_VALIDATE_DIAL_INFO) || !ni.is_signal_capable() {
|
if !ni.has_capability(CAP_VALIDATE_DIAL_INFO) || !ni.is_fully_direct_inbound() {
|
||||||
return Ok(NetworkResult::service_unavailable(
|
return Ok(NetworkResult::service_unavailable(
|
||||||
"validate dial info is not available",
|
"validate dial info is not available",
|
||||||
));
|
));
|
||||||
@ -118,7 +118,8 @@ impl RPCProcessor {
|
|||||||
entry.with(rti, move |_rti, e| {
|
entry.with(rti, move |_rti, e| {
|
||||||
e.node_info(routing_domain)
|
e.node_info(routing_domain)
|
||||||
.map(|ni| {
|
.map(|ni| {
|
||||||
ni.has_capability(CAP_VALIDATE_DIAL_INFO) && ni.is_signal_capable()
|
ni.has_capability(CAP_VALIDATE_DIAL_INFO)
|
||||||
|
&& ni.is_fully_direct_inbound()
|
||||||
})
|
})
|
||||||
.unwrap_or(false)
|
.unwrap_or(false)
|
||||||
})
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user