From e3b7af2c007f4bc9cfb0470e8276a06d68fbe300 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20Frosteg=C3=A5rd?= Date: Sat, 23 May 2020 20:41:20 +0200 Subject: [PATCH] aquatic_ws: log error messages on channel send failure --- aquatic_ws/src/lib/common.rs | 7 +++++-- aquatic_ws/src/lib/network/mod.rs | 11 +++++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/aquatic_ws/src/lib/common.rs b/aquatic_ws/src/lib/common.rs index 89dfa9b..73e24f7 100644 --- a/aquatic_ws/src/lib/common.rs +++ b/aquatic_ws/src/lib/common.rs @@ -4,6 +4,7 @@ use std::sync::Arc; use flume::{Sender, Receiver}; use hashbrown::HashMap; use indexmap::IndexMap; +use log::error; use mio::Token; use parking_lot::Mutex; @@ -12,7 +13,7 @@ pub use aquatic_common::ValidUntil; use crate::protocol::*; -#[derive(Clone, Copy)] +#[derive(Clone, Copy, Debug)] pub struct ConnectionMeta { /// Index of socket worker responsible for this connection. Required for /// sending back response through correct channel to correct worker. @@ -124,7 +125,9 @@ impl OutMessageSender { meta: ConnectionMeta, message: OutMessage ){ - self.0[meta.worker_index].send((meta, message)); + if let Err(err) = self.0[meta.worker_index].send((meta, message)){ + error!("OutMessageSender: couldn't send message: {:?}", err); + } } } diff --git a/aquatic_ws/src/lib/network/mod.rs b/aquatic_ws/src/lib/network/mod.rs index 9552dc0..b68c94f 100644 --- a/aquatic_ws/src/lib/network/mod.rs +++ b/aquatic_ws/src/lib/network/mod.rs @@ -2,7 +2,7 @@ use std::time::Duration; use std::io::ErrorKind; use hashbrown::HashMap; -use log::{info, trace}; +use log::{info, trace, error}; use native_tls::TlsAcceptor; use mio::{Events, Poll, Interest, Token}; use mio::net::TcpListener; @@ -192,7 +192,14 @@ pub fn run_handshakes_and_read_messages( trace!("read message"); - in_message_sender.send((meta, in_message)); + if let Err(err) = in_message_sender + .send((meta, in_message)) + { + error!( + "InMessageSender: couldn't send message: {:?}", + err + ); + } } }, Err(Io(err)) if err.kind() == ErrorKind::WouldBlock => {