From: Ian Jackson Date: Sat, 4 Jul 2020 18:38:44 +0000 (+0100) Subject: refactor for debug X-Git-Tag: otter-0.2.0~1459 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=6ff45417d324508f4c6d0e41bae2c454e373c3fc;p=otter.git refactor for debug --- diff --git a/src/sse.rs b/src/sse.rs index 267c284c..fa76fcd2 100644 --- a/src/sse.rs +++ b/src/sse.rs @@ -52,12 +52,13 @@ struct RecordedConfirmation { } impl Read for UpdateReader { - fn read(&mut self, mut buf: &mut [u8]) -> Result { + fn read(&mut self, orig_buf: &mut [u8]) -> Result { let em : fn(&'static str) -> io::Error = |s| io::Error::new(io::ErrorKind::Other, anyhow!(s)); let mut amig = self.ami.lock().map_err(|_| em("poison"))?; - let orig_wanted = buf.len(); + let orig_wanted = orig_buf.len(); + let mut buf = orig_buf.as_mut(); if self.init_confirmation_send.next().is_some() { write!(buf, r#" @@ -83,7 +84,7 @@ data: server online write!(buf, r#" event: recorded data: "#)?; - serde_json::to_writer(&mut buf, &RecordedConfirmation { + serde_json::to_writer(&mut *buf, &RecordedConfirmation { gen : next.gen, piece : next.piece, cseq : next.client_seq, @@ -102,7 +103,12 @@ data: {} } loop { let generated = orig_wanted - buf.len(); - if generated > 0 { return Ok(generated) } + if generated > 0 { + eprintln!("SENDING to {:?} {:?}:\n{}\n", + &self.player, &self.client, + str::from_utf8(&orig_buf[0..generated]).unwrap()); + return Ok(generated) + } amig = cv.wait_timeout(amig, UPDATE_KEEPALIVE) .map_err(|_| em("poison"))?.0;