@@ -1,4 +1,4 @@
1−use crate::Result;
1+use crate::{Error, Result};
2use anyhow::Context;
2use anyhow::Context;
3use jsonrpc_core as jsonrpc;
3use jsonrpc_core as jsonrpc;
4use log::{debug, error, info, warn};
4use log::{debug, error, info, warn};
@@ -76,14 +76,17 @@ impl Transport {
76 let mut content_length = None;
76 let mut content_length = None;
78 buffer.truncate(0);
78 buffer.truncate(0);
79− reader.read_line(buffer).await?;
79+ if reader.read_line(buffer).await? == 0 {
80+ return Err(Error::StreamClosed);
80− let header = buffer.trim();
83+ // debug!("<- header {:?}", buffer);
82 if header.is_empty() {
85 if header.is_empty() {
86− debug!("<- header {}", header);
89+ let header = buffer.trim();
88 let parts = header.split_once(": ");
91 let parts = header.split_once(": ");
@@ -121,8 +124,10 @@ impl Transport {
121 buffer: &mut String,
124 buffer: &mut String,
122 ) -> Result<()> {
125 ) -> Result<()> {
123 buffer.truncate(0);
126 buffer.truncate(0);
124− err.read_line(buffer).await?;
127+ if err.read_line(buffer).await? == 0 {
128+ return Err(Error::StreamClosed);
125− error!("err <- {}", buffer);
130+ error!("err <- {:?}", buffer);