aboutsummaryrefslogtreecommitdiffstats
path: root/src/bin/rbw-agent/sock.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/bin/rbw-agent/sock.rs')
-rw-r--r--src/bin/rbw-agent/sock.rs9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/bin/rbw-agent/sock.rs b/src/bin/rbw-agent/sock.rs
index 688f87a..bb2d6fb 100644
--- a/src/bin/rbw-agent/sock.rs
+++ b/src/bin/rbw-agent/sock.rs
@@ -26,14 +26,19 @@ impl Sock {
Ok(())
}
- pub async fn recv(&mut self) -> anyhow::Result<rbw::protocol::Request> {
+ pub async fn recv(
+ &mut self,
+ ) -> anyhow::Result<std::result::Result<rbw::protocol::Request, String>>
+ {
let Self(sock) = self;
let mut buf = tokio::io::BufStream::new(sock);
let mut line = String::new();
buf.read_line(&mut line)
.await
.context("failed to read message from socket")?;
- Ok(serde_json::from_str(&line).context("failed to parse message")?)
+ Ok(serde_json::from_str(&line).map_err(|e| {
+ format!("failed to parse message '{}': {}", line, e)
+ }))
}
}