switch out capabilities
This commit is contained in:
@@ -495,31 +495,42 @@ impl NetworkManager {
|
||||
|
||||
/// Get our node's capabilities in the PublicInternet routing domain
|
||||
fn generate_public_internet_node_status(&self) -> PublicInternetNodeStatus {
|
||||
|
||||
let Some(own_peer_info) = self
|
||||
.routing_table()
|
||||
.get_own_peer_info(RoutingDomain::PublicInternet) else {
|
||||
return PublicInternetNodeStatus {
|
||||
will_route: false,
|
||||
will_tunnel: false,
|
||||
will_signal: false,
|
||||
will_relay: false,
|
||||
will_validate_dial_info: false,
|
||||
};
|
||||
return PublicInternetNodeStatus::default();
|
||||
};
|
||||
let own_node_info = own_peer_info.signed_node_info().node_info();
|
||||
|
||||
let config = self.config();
|
||||
let c = config.get();
|
||||
|
||||
let will_route = own_node_info.can_inbound_relay(); // xxx: eventually this may have more criteria added
|
||||
let will_tunnel = own_node_info.can_inbound_relay(); // xxx: we may want to restrict by battery life and network bandwidth at some point
|
||||
let will_signal = own_node_info.can_signal();
|
||||
let will_relay = own_node_info.can_inbound_relay();
|
||||
let will_validate_dial_info = own_node_info.can_validate_dial_info();
|
||||
|
||||
let mut capabilities = Vec::new();
|
||||
if will_route && !c.capabilities.disable.contains(&CAP_WILL_ROUTE) {
|
||||
capabilities.push(CAP_WILL_ROUTE);
|
||||
}
|
||||
if will_tunnel && !c.capabilities.disable.contains(&CAP_WILL_TUNNEL) {
|
||||
capabilities.push(CAP_WILL_TUNNEL);
|
||||
}
|
||||
if will_signal && !c.capabilities.disable.contains(&CAP_WILL_SIGNAL) {
|
||||
capabilities.push(CAP_WILL_SIGNAL);
|
||||
}
|
||||
if will_relay && !c.capabilities.disable.contains(&CAP_WILL_RELAY){
|
||||
capabilities.push(CAP_WILL_RELAY);
|
||||
}
|
||||
if will_validate_dial_info && !c.capabilities.disable.contains(&CAP_WILL_VALIDATE_DIAL_INFO) {
|
||||
capabilities.push(CAP_WILL_VALIDATE_DIAL_INFO);
|
||||
}
|
||||
|
||||
PublicInternetNodeStatus {
|
||||
will_route,
|
||||
will_tunnel,
|
||||
will_signal,
|
||||
will_relay,
|
||||
will_validate_dial_info,
|
||||
capabilities
|
||||
}
|
||||
}
|
||||
/// Get our node's capabilities in the LocalNetwork routing domain
|
||||
@@ -527,20 +538,26 @@ impl NetworkManager {
|
||||
let Some(own_peer_info) = self
|
||||
.routing_table()
|
||||
.get_own_peer_info(RoutingDomain::LocalNetwork) else {
|
||||
return LocalNetworkNodeStatus {
|
||||
will_relay: false,
|
||||
will_validate_dial_info: false,
|
||||
};
|
||||
return LocalNetworkNodeStatus::default();
|
||||
};
|
||||
|
||||
let own_node_info = own_peer_info.signed_node_info().node_info();
|
||||
|
||||
let config = self.config();
|
||||
let c = config.get();
|
||||
|
||||
let will_relay = own_node_info.can_inbound_relay();
|
||||
let will_validate_dial_info = own_node_info.can_validate_dial_info();
|
||||
|
||||
let mut capabilities = Vec::new();
|
||||
if will_relay && !c.capabilities.disable.contains(&CAP_WILL_RELAY) {
|
||||
capabilities.push(CAP_WILL_RELAY);
|
||||
}
|
||||
if will_validate_dial_info && !c.capabilities.disable.contains(&CAP_WILL_VALIDATE_DIAL_INFO) {
|
||||
capabilities.push(CAP_WILL_VALIDATE_DIAL_INFO);
|
||||
}
|
||||
LocalNetworkNodeStatus {
|
||||
will_relay,
|
||||
will_validate_dial_info,
|
||||
capabilities
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -686,30 +686,30 @@ impl Network {
|
||||
let c = self.config.get();
|
||||
let mut inbound = ProtocolTypeSet::new();
|
||||
|
||||
if c.network.protocol.udp.enabled && c.capabilities.protocol_udp {
|
||||
if c.network.protocol.udp.enabled {
|
||||
inbound.insert(ProtocolType::UDP);
|
||||
}
|
||||
if c.network.protocol.tcp.listen && c.capabilities.protocol_accept_tcp {
|
||||
if c.network.protocol.tcp.listen {
|
||||
inbound.insert(ProtocolType::TCP);
|
||||
}
|
||||
if c.network.protocol.ws.listen && c.capabilities.protocol_accept_ws {
|
||||
if c.network.protocol.ws.listen {
|
||||
inbound.insert(ProtocolType::WS);
|
||||
}
|
||||
if c.network.protocol.wss.listen && c.capabilities.protocol_accept_wss {
|
||||
if c.network.protocol.wss.listen {
|
||||
inbound.insert(ProtocolType::WSS);
|
||||
}
|
||||
|
||||
let mut outbound = ProtocolTypeSet::new();
|
||||
if c.network.protocol.udp.enabled && c.capabilities.protocol_udp {
|
||||
if c.network.protocol.udp.enabled {
|
||||
outbound.insert(ProtocolType::UDP);
|
||||
}
|
||||
if c.network.protocol.tcp.connect && c.capabilities.protocol_connect_tcp {
|
||||
if c.network.protocol.tcp.connect {
|
||||
outbound.insert(ProtocolType::TCP);
|
||||
}
|
||||
if c.network.protocol.ws.connect && c.capabilities.protocol_connect_ws {
|
||||
if c.network.protocol.ws.connect {
|
||||
outbound.insert(ProtocolType::WS);
|
||||
}
|
||||
if c.network.protocol.wss.connect && c.capabilities.protocol_connect_wss {
|
||||
if c.network.protocol.wss.connect {
|
||||
outbound.insert(ProtocolType::WSS);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user