@@ -1,4 +1,5 @@
11use crate::Result;
2+use anyhow::Context;
23use jsonrpc_core as jsonrpc;
34use log::{error, info};
45use serde::{Deserialize, Serialize};
@@ -90,7 +91,7 @@ impl Transport {
9091
9192 match (parts.next(), parts.next(), parts.next()) {
9293 (Some("Content-Length"), Some(value), None) => {
93− content_length = Some(value.parse().unwrap());
94+ content_length = Some(value.parse().context("invalid content length")?);
9495 }
9596 (Some(_), Some(_), None) => {}
9697 _ => {
@@ -103,12 +104,12 @@ impl Transport {
103104 }
104105 }
105106
106− let content_length = content_length.unwrap();
107+ let content_length = content_length.context("missing content length")?;
107108
108109 //TODO: reuse vector
109110 let mut content = vec![0; content_length];
110111 reader.read_exact(&mut content).await?;
111− let msg = String::from_utf8(content).unwrap();
112+ let msg = String::from_utf8(content).context("invalid utf8 from server")?;
112113
113114 info!("<- {}", msg);
114115
@@ -162,7 +163,9 @@ impl Transport {
162163 match msg {
163164 ServerMessage::Output(output) => self.process_request_response(output).await?,
164165 ServerMessage::Call(call) => {
165− self.client_tx.send((self.id, call)).unwrap();
166+ self.client_tx
167+ .send((self.id, call))
168+ .context("failed to send a message to server")?;
166169 // let notification = Notification::parse(&method, params);
167170 }
168171 };