// Licensed under the Apache License, Version 2.0 or the MIT license // , at your // option. This file may not be copied, modified, or distributed // except according to those terms. // Enable just this file for logging to just see packets. // e.g. "RUST_LOG=neqo_transport::dump neqo-client ..." use crate::connection::Connection; use crate::frame::Frame; use crate::packet::{PacketNumber, PacketType}; use crate::path::PathRef; use neqo_common::{qdebug, Decoder}; use std::fmt::Write; #[allow(clippy::module_name_repetitions)] pub fn dump_packet( conn: &Connection, path: &PathRef, dir: &str, pt: PacketType, pn: PacketNumber, payload: &[u8], ) { if ::log::Level::Debug > ::log::max_level() { return; } let mut s = String::from(""); let mut d = Decoder::from(payload); while d.remaining() > 0 { let f = match Frame::decode(&mut d) { Ok(f) => f, Err(_) => { s.push_str(" [broken]..."); break; } }; if let Some(x) = f.dump() { write!(&mut s, "\n {} {}", dir, &x).unwrap(); } } qdebug!([conn], "pn={} type={:?} {}{}", pn, pt, path.borrow(), s); }