proper relay switch, fix wasm
This commit is contained in:
		| @@ -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 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user