diff --git a/src/listen.rs b/src/listen.rs index 64598c1..03abd4b 100644 --- a/src/listen.rs +++ b/src/listen.rs @@ -52,7 +52,6 @@ pub(crate) struct LanMouseListener { listen_rx: Receiver, listen_tx: Sender, listen_task: JoinHandle<()>, - connection_attempts: Arc>>, conns: Rc>>, request_port_change: Sender, port_changed: Receiver>, @@ -139,8 +138,21 @@ impl LanMouseListener { spawn_local(read_loop(conns_clone.clone(), addr, conn, listen_tx.clone())); }, Err(e) => { - if let Some(fingerprint) = connection_attempts.lock().expect("lock").pop_front() { - listen_tx.send(ListenEvent::Rejected { fingerprint }).expect("channel closed"); + if let Error::Std(ref e) = e { + if let Some(e) = e.0.downcast_ref::() { + match e { + webrtc_dtls::Error::ErrVerifyDataMismatch => { + if let Some(fingerprint) = connection_attempts.lock().expect("lock").pop_front() { + listen_tx.send(ListenEvent::Rejected { fingerprint }).expect("channel closed"); + } + } + _ => log::warn!("accept: {e}"), + } + } else { + log::warn!("accept: {e:?}"); + } + } else { + log::warn!("accept: {e:?}"); } } }, @@ -166,7 +178,6 @@ impl LanMouseListener { Ok(Self { conns, - connection_attempts, listen_rx, listen_tx, listen_task,