From 2361dcbb8c62b224f72fa2de093b7b14275561cf Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sun, 6 Sep 2020 02:20:00 +0100 Subject: [PATCH] debug --- src/bin/server.rs | 3 +++ src/debugreader.rs | 11 +++++++---- src/imports.rs | 1 + src/lib.rs | 1 + src/sse.rs | 3 ++- 5 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/bin/server.rs b/src/bin/server.rs index a0b13954..700a225e 100644 --- a/src/bin/server.rs +++ b/src/bin/server.rs @@ -53,7 +53,10 @@ fn updates<'r>(ctoken : InstanceAccess, gen: u64, -> impl response::Responder<'r> { let gen = Generation(gen); let iad = ctoken.i; + debug!("starting update stream {:?}", &iad); + let client = iad.ident; let content = sse::content(iad, gen)?; + let content = DebugReader(content, client); let content = response::Stream::chunked(content, 4096); const CTYPE : &str = "text/event-stream; charset=utf-8"; let ctype = ContentType::parse_flexible(CTYPE).unwrap(); diff --git a/src/debugreader.rs b/src/debugreader.rs index bb905074..4eeb2707 100644 --- a/src/debugreader.rs +++ b/src/debugreader.rs @@ -1,13 +1,16 @@ + +use crate::imports::*; + #[derive(Debug)] -pub struct DebugReader(pub T); +pub struct DebugReader(pub T, pub ClientId); impl Read for DebugReader { fn read(&mut self, buf: &mut [u8]) -> Result { let l = buf.len(); - eprintln!("DebugReader({:?}).read()...", l); + trace!("{} read({})...", &self.1, l); let r = self.0.read(buf); - eprintln!("DebugReader({:?}).read() = {:?} {:?}", l, &r, - r.as_ref().map(|&r| str::from_utf8(&buf[0..r]))); + debug!("{} read({}) = {:?} {:?}", &self.1, l, &r, + r.as_ref().map(|&r| str::from_utf8(&buf[0..r]))); r } } diff --git a/src/imports.rs b/src/imports.rs index ffd33a8d..18b3d3a3 100644 --- a/src/imports.rs +++ b/src/imports.rs @@ -85,6 +85,7 @@ pub use crate::mgmtchannel::*; pub use crate::api::{Lens,TransparentLens}; pub use crate::utils::*; pub use crate::spec::*; +pub use crate::debugreader::DebugReader; pub use nix::unistd::Uid; diff --git a/src/lib.rs b/src/lib.rs index f1d151b3..10699b89 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -20,4 +20,5 @@ pub mod cmdlistener; pub mod commands; pub mod utils; pub mod mgmtchannel; +pub mod debugreader; #[path="slotmap-slot-idx.rs"] pub mod slotmap_slot_idx; diff --git a/src/sse.rs b/src/sse.rs index 0b923a91..3fcaa06d 100644 --- a/src/sse.rs +++ b/src/sse.rs @@ -59,7 +59,8 @@ impl Read for UpdateReader { let tu = next.for_transmit(self.client); // xxx handle overflow by allocating write!(buf, "data: ")?; - serde_json::to_writer(&mut buf, &tu)?; + serde_json::to_writer(&mut buf, &tu) + .map_err(|e| { error!("serde_json::to_write: {:?}", e); e })?; write!(buf, "\n\ id: {}\n\n", &self.to_send)?; -- 2.30.2