diff --git a/Cargo.lock b/Cargo.lock index 6808811..d8a0321 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1315,7 +1315,7 @@ checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" [[package]] name = "zika" -version = "3.3.2" +version = "3.3.3" dependencies = [ "base64", "bytes", diff --git a/Cargo.toml b/Cargo.toml index dad4f5a..332b191 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zika" -version = "3.3.2" +version = "3.3.3" license = "MIT" description = "IP Tunneling over MQTT" repository = "https://github.com/akiroz/zika" diff --git a/src/client.rs b/src/client.rs index 45c9165..83bccf2 100644 --- a/src/client.rs +++ b/src/client.rs @@ -162,7 +162,8 @@ impl Client { return; } } - log::warn!("drop packet: unknown addr {:?}", &dest); + // Stray packets sent to interface + log::debug!("drop packet: unknown addr {:?}", &dest); } // mqtt -> tun diff --git a/src/remote.rs b/src/remote.rs index 55a6967..b0b99c1 100644 --- a/src/remote.rs +++ b/src/remote.rs @@ -1,15 +1,16 @@ +use core::time::Duration; +use std::sync::Arc; +use std::ops::Range; + use log; use bytes::Bytes; +use tokio::{sync::{mpsc, Mutex}, task}; use rumqttc::v5::{ self as mqtt, - mqttbytes::{v5::Packet, QoS}, + mqttbytes::{v5::Packet, QoS, v5::PublishProperties}, }; -use std::sync::Arc; -use tokio::{sync::{mpsc, Mutex}, task}; use crate::lookup_pool::LookupPool; -use rumqttc::v5::mqttbytes::v5::PublishProperties; -use std::ops::Range; // Context for receiving messsage from remote struct RemoteIncomingContext { @@ -68,8 +69,13 @@ impl Remote { log::trace!("broker[{}] recv {:?}", idx, pkt); Self::handle_packet(&mut context, pkt).await; } - x => { - log::trace!("broker[{}] recv {:?}", idx, x); + Err(err) => { + log::warn!("broker[{}] recv {:?}", idx, err); + tokio::time::sleep(Duration::from_secs(1)).await; + continue; + } + Ok(msg) => { // Other messages + log::trace!("broker[{}] recv {:?}", idx, msg); continue; } };