Skip to main content

connexa/task/
upnp.rs

1use crate::behaviour::peer_store::store::Store;
2use crate::task::ConnexaTask;
3use libp2p::swarm::NetworkBehaviour;
4use libp2p::upnp::Event as UpnpEvent;
5use std::fmt::Debug;
6
7impl<X, C: NetworkBehaviour, S, T, K> ConnexaTask<X, C, S, T, K>
8where
9    X: Default + Send + 'static,
10    C: Send,
11    C::ToSwarm: Debug,
12    S: Store,
13{
14    pub fn process_upnp_event(&mut self, event: UpnpEvent) {
15        match event {
16            UpnpEvent::NewExternalAddr { external_addr, .. } => {
17                tracing::info!(?external_addr, "upnp external address discovered");
18            }
19            UpnpEvent::ExpiredExternalAddr { external_addr, .. } => {
20                tracing::info!(?external_addr, "upnp external address expired");
21            }
22            UpnpEvent::GatewayNotFound => {
23                tracing::warn!("upnp gateway not found");
24            }
25            UpnpEvent::NonRoutableGateway => {
26                tracing::warn!("upnp gateway is not routable");
27            }
28        }
29    }
30}