diff --git a/Cargo.lock b/Cargo.lock index 7056b78..053c865 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -600,9 +600,9 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.45" +version = "1.0.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea9c5432ff16d6152371f808fb5a871cd67368171b09bb21b43df8e4a47a3556" +checksum = "cc371affeffc477f42a221a1e4297aedcea33d47d19b61455588bd9d8f6b19ac" dependencies = [ "proc-macro2", "quote", diff --git a/src/cloud.rs b/src/cloud.rs index 053eede..189af93 100644 --- a/src/cloud.rs +++ b/src/cloud.rs @@ -270,7 +270,10 @@ impl GenericCloud(&mut self, addr: Addr) -> Result<(), Error> { let addrs = resolve(&addr)?.into_iter().map(mapped_addr).collect::>(); for addr in &addrs { - if self.own_addresses.contains(addr) || self.peers.contains_key(addr) { + if self.own_addresses.contains(addr) + || self.peers.contains_key(addr) + || self.pending_inits.contains_key(addr) + { return Ok(()) } } @@ -608,6 +611,7 @@ impl GenericCloud GenericCloud Result<(), Error> { + let src = mapped_addr(src); debug!("Received {} bytes from {}", data.len(), src); let msg_result = if let Some(init) = self.pending_inits.get_mut(&src) { init.handle_message(data) diff --git a/src/crypto/init.rs b/src/crypto/init.rs index f5e19d8..b320ef5 100644 --- a/src/crypto/init.rs +++ b/src/crypto/init.rs @@ -82,6 +82,7 @@ pub const CLOSING: u8 = 5; pub const SALTED_NODE_ID_HASH_LEN: usize = 20; pub type SaltedNodeIdHash = [u8; SALTED_NODE_ID_HASH_LEN]; + #[allow(clippy::large_enum_variant)] pub enum InitMsg { Ping { @@ -561,6 +562,7 @@ impl InitState

{ }) .max_by(|(_, s1), (_, s2)| if s1 < s2 { cmp::Ordering::Less } else { cmp::Ordering::Greater }); if let Some(algo) = algo { + debug!("Init: best algorithm is {:?} with speed {}", algo.0, algo.1); Ok(Some(algo)) } else { Err(Error::CryptoInit("No common algorithms")) diff --git a/src/port_forwarding.rs b/src/port_forwarding.rs index fe5cb3c..89311f1 100644 --- a/src/port_forwarding.rs +++ b/src/port_forwarding.rs @@ -39,7 +39,7 @@ mod internal { return None } }; - info!("Port-forwarding: found router at {}", gateway.addr); + debug!("Port-forwarding: found router at {}", gateway.addr); let internal_addr = SocketAddrV4::new(get_internal_ip(), port); // Query the external address let external_ip = match gateway.get_external_ip() { @@ -50,9 +50,10 @@ mod internal { } }; if let Ok((port, timeout)) = Self::get_any_forwarding(&gateway, internal_addr, port) { - info!("Port-forwarding: external IP is {}", external_ip); + debug!("Port-forwarding: external IP is {}", external_ip); let external_addr = SocketAddrV4::new(external_ip, port); - info!("Port-forwarding: successfully activated port forward on {}, timeout: {}", external_addr, timeout); + debug!("Port-forwarding has timeout {}", timeout); + info!("Port-forwarding: successfully activated port forward on {}", external_addr); let next_extension = if timeout > 0 { Some(SystemTimeSource::now() + Time::from(timeout) - 60) } else { None }; Some(PortForwarding { internal_addr, external_addr, gateway, next_extension }) @@ -78,11 +79,12 @@ mod internal { return Ok(a) } } + warn!("Failed to activate port forwarding"); Err(()) } fn get_forwarding(gateway: &Gateway, addr: SocketAddrV4, port: u16) -> Result<(u16, u32), ()> { - info!("Trying external port {}", port); + debug!("Trying external port {}", port); if port == 0 { match gateway.add_any_port(PortMappingProtocol::UDP, addr, LEASE_TIME, DESCRIPTION) { Ok(port) => Ok((port, LEASE_TIME)), @@ -90,13 +92,13 @@ mod internal { match gateway.add_any_port(PortMappingProtocol::UDP, addr, 0, DESCRIPTION) { Ok(port) => Ok((port, 0)), Err(err) => { - error!("Port-forwarding: failed to activate port forwarding: {}", err); + debug!("Port-forwarding: failed to activate port forwarding: {}", err); Err(()) } } } Err(err) => { - error!("Port-forwarding: failed to activate port forwarding: {}", err); + debug!("Port-forwarding: failed to activate port forwarding: {}", err); Err(()) } } @@ -108,13 +110,13 @@ mod internal { match gateway.add_port(PortMappingProtocol::UDP, port, addr, 0, DESCRIPTION) { Ok(()) => Ok((port, 0)), Err(err) => { - error!("Port-forwarding: failed to activate port forwarding: {}", err); + debug!("Port-forwarding: failed to activate port forwarding: {}", err); Err(()) } } } Err(err) => { - error!("Port-forwarding: failed to activate port forwarding: {}", err); + debug!("Port-forwarding: failed to activate port forwarding: {}", err); Err(()) } } @@ -137,7 +139,7 @@ mod internal { DESCRIPTION ) { Ok(()) => debug!("Port-forwarding: extended port forwarding"), - Err(err) => error!("Port-forwarding: failed to extend port forwarding: {}", err) + Err(err) => debug!("Port-forwarding: failed to extend port forwarding: {}", err) }; self.next_extension = Some(SystemTimeSource::now() + Time::from(LEASE_TIME) - 60); } @@ -145,7 +147,7 @@ mod internal { fn deactivate(&self) { match self.gateway.remove_port(PortMappingProtocol::UDP, self.external_addr.port()) { Ok(()) => info!("Port-forwarding: successfully deactivated port forwarding"), - Err(err) => error!("Port-forwarding: failed to deactivate port forwarding: {}", err) + Err(err) => debug!("Port-forwarding: failed to deactivate port forwarding: {}", err) } } }