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