From b582c556f4602477510389b76c640349e48de29b Mon Sep 17 00:00:00 2001 From: Chip Senkbeil Date: Tue, 16 Aug 2022 10:48:16 -0600 Subject: [PATCH] Add logging to better clarify deserialization failures in distant-net --- Cargo.lock | 8 ++++---- distant-net/src/transport/framed.rs | 10 ++++++++-- distant-net/src/transport/framed/read.rs | 10 ++++++++-- 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 793f416..402ed77 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -709,7 +709,7 @@ dependencies = [ [[package]] name = "distant" -version = "0.17.0" +version = "0.17.1" dependencies = [ "anyhow", "assert_cmd", @@ -751,7 +751,7 @@ dependencies = [ [[package]] name = "distant-core" -version = "0.17.0" +version = "0.17.1" dependencies = [ "assert_fs", "async-trait", @@ -786,7 +786,7 @@ dependencies = [ [[package]] name = "distant-net" -version = "0.17.0" +version = "0.17.1" dependencies = [ "async-trait", "bytes", @@ -811,7 +811,7 @@ dependencies = [ [[package]] name = "distant-ssh2" -version = "0.17.0" +version = "0.17.1" dependencies = [ "anyhow", "assert_fs", diff --git a/distant-net/src/transport/framed.rs b/distant-net/src/transport/framed.rs index ec259c4..c6a99fa 100644 --- a/distant-net/src/transport/framed.rs +++ b/distant-net/src/transport/framed.rs @@ -4,6 +4,7 @@ use crate::{ }; use async_trait::async_trait; use futures::{SinkExt, StreamExt}; +use log::*; use serde::{de::DeserializeOwned, Serialize}; use std::io; use tokio_util::codec::{Framed, FramedRead, FramedWrite}; @@ -112,8 +113,13 @@ where let data = data?; // Deserialize byte stream into our expected type - let data = utils::deserialize_from_slice(&data)?; - Ok(Some(data)) + match utils::deserialize_from_slice(&data) { + Ok(data) => Ok(Some(data)), + Err(x) => { + error!("Invalid data: {}", String::from_utf8_lossy(&data)); + Err(x) + } + } } else { Ok(None) } diff --git a/distant-net/src/transport/framed/read.rs b/distant-net/src/transport/framed/read.rs index ff1bb41..7d86c8d 100644 --- a/distant-net/src/transport/framed/read.rs +++ b/distant-net/src/transport/framed/read.rs @@ -1,6 +1,7 @@ use crate::{transport::framed::utils, Codec, UntypedTransportRead}; use async_trait::async_trait; use futures::StreamExt; +use log::*; use serde::de::DeserializeOwned; use std::io; use tokio::io::AsyncRead; @@ -31,8 +32,13 @@ where let data = data?; // Deserialize byte stream into our expected type - let data = utils::deserialize_from_slice(&data)?; - Ok(Some(data)) + match utils::deserialize_from_slice(&data) { + Ok(data) => Ok(Some(data)), + Err(x) => { + error!("Invalid data: {}", String::from_utf8_lossy(&data)); + Err(x) + } + } } else { Ok(None) }