Fix logic error in Messenger::flush_recv()

This commit is contained in:
mars 2022-10-31 17:00:44 -06:00
parent 23d699dfef
commit 4d9d050720
2 changed files with 9 additions and 2 deletions

View File

@ -25,6 +25,12 @@ impl MagpieClient {
})
}
pub fn send(&mut self, msg: &MagpieServerMsg) {
if let Err(err) = self.messenger.send(msg) {
eprintln!("Message send error: {:?}", err);
}
}
pub fn send_json_message<T: Serialize>(&mut self, id: PanelId, msg: &T) {
let msg = serde_json::to_string(msg).unwrap();
eprintln!("Sending message: {}", msg);
@ -34,6 +40,6 @@ impl MagpieClient {
msg: msg.into_bytes(),
};
let _ = self.messenger.send(&MagpieServerMsg::SendMessage(msg));
self.send(&MagpieServerMsg::SendMessage(msg));
}
}

View File

@ -82,6 +82,7 @@ impl<T: Read + Write, I: DeserializeOwned, O: Serialize> Messenger<T, I, O> {
let len = payload.len() as u32;
self.transport.write_u32::<LittleEndian>(len)?;
self.transport.write_all(&payload)?;
self.transport.flush()?;
Ok(())
}
@ -106,7 +107,7 @@ impl<T: Read + Write, I: DeserializeOwned, O: Serialize> Messenger<T, I, O> {
loop {
if let Some(expected_len) = self.expected_len {
if expected_len < self.received_buf.len() {
if self.received_buf.len() < expected_len {
break;
}