mirror of
https://gitlab.com/veilid/veilid.git
synced 2024-11-22 08:56:58 -06:00
proper relay switch, fix wasm
This commit is contained in:
parent
a9c173e52f
commit
248b21a951
@ -15,6 +15,11 @@ impl Default for NetworkClass {
|
||||
}
|
||||
|
||||
impl NetworkClass {
|
||||
// Must an inbound relay be kept available?
|
||||
// In the case of InboundCapable, it is left up to the class of each DialInfo to determine if an inbound relay is required
|
||||
pub fn inbound_wants_relay(&self) -> bool {
|
||||
matches!(self, Self::OutboundOnly | Self::WebApp)
|
||||
}
|
||||
// Should an outbound relay be kept available?
|
||||
pub fn outbound_wants_relay(&self) -> bool {
|
||||
matches!(self, Self::WebApp)
|
||||
|
@ -130,13 +130,16 @@ impl RoutingDomainDetailCommon {
|
||||
|
||||
// Check if any of our dialinfo require a relay for signaling
|
||||
// FullConeNAT requires a relay but it does not have to be published because it does not require signaling
|
||||
let mut publish_relay = false;
|
||||
for did in self.dial_info_details() {
|
||||
if did.class.requires_signal() {
|
||||
publish_relay = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
let mut publish_relay = node_info.network_class().inbound_wants_relay() || node_info.network_class().outbound_wants_relay();
|
||||
if !publish_relay {
|
||||
// Check the dialinfo to see if they might want to publish a relay for signalling specifically
|
||||
for did in self.dial_info_details() {
|
||||
if did.class.requires_signal() {
|
||||
publish_relay = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let relay_info = if publish_relay {
|
||||
self
|
||||
|
Loading…
Reference in New Issue
Block a user