fix asyncpeekstream

This commit is contained in:
John Smith
2022-08-24 13:49:05 -04:00
parent cd99a4210b
commit ce19a1bfbf
4 changed files with 76 additions and 15 deletions

View File

@@ -68,7 +68,6 @@ impl RawTcpNetworkConnection {
let mut header = [0u8; 4];
network_result_try!(stream.read_exact(&mut header).await.into_network_result()?);
if header[0] != b'V' || header[1] != b'L' {
bail_io_error_other!("received invalid TCP frame header");
}
@@ -78,7 +77,8 @@ impl RawTcpNetworkConnection {
}
let mut out: Vec<u8> = vec![0u8; len];
network_result_try!(stream.read_exact(&mut out).await.into_network_result()?);
let nrout = stream.read_exact(&mut out).await.into_network_result()?;
network_result_try!(nrout);
Ok(NetworkResult::Value(out))
}

View File

@@ -81,6 +81,14 @@ where
Ok(v) => NetworkResult::value(v),
Err(e) => err_to_network_result(e),
};
if !out.is_value() {
tracing::Span::current().record("network_result", &tracing::field::display(&out));
return Ok(out);
}
let out = match self.stream.clone().flush().await {
Ok(v) => NetworkResult::value(v),
Err(e) => err_to_network_result(e),
};
tracing::Span::current().record("network_result", &tracing::field::display(&out));
Ok(out)
}