mirror of
https://github.com/Noratrieb/haesli.git
synced 2026-01-14 11:45:02 +01:00
fix
This commit is contained in:
parent
dbc577abbc
commit
504757b324
7 changed files with 52 additions and 29 deletions
|
|
@ -224,7 +224,9 @@ impl TransportConnection {
|
|||
}
|
||||
|
||||
async fn recv_method(&mut self) -> Result<Method> {
|
||||
let start_ok_frame = frame::read_frame(&mut self.stream, self.max_frame_size).await?;
|
||||
let start_ok_frame = frame::read_frame(&mut self.stream, self.max_frame_size)
|
||||
.await
|
||||
.context("read from stream, peer disconnected")?;
|
||||
|
||||
ensure_conn(start_ok_frame.kind == FrameType::Method)?;
|
||||
|
||||
|
|
@ -320,7 +322,7 @@ impl TransportConnection {
|
|||
loop {
|
||||
select! {
|
||||
frame = frame::read_frame(&mut self.stream, self.max_frame_size) => {
|
||||
let frame = frame?;
|
||||
let frame = frame.context("read from stream, peer disconnected")?;
|
||||
self.handle_frame(frame).await?;
|
||||
}
|
||||
queued_method = self.event_receiver.recv() => {
|
||||
|
|
|
|||
|
|
@ -283,15 +283,15 @@ pub async fn read_frame<R>(r: &mut R, max_frame_size: MaxFrameSize) -> Result<Fr
|
|||
where
|
||||
R: AsyncReadExt + Unpin + Send,
|
||||
{
|
||||
let kind = r.read_u8().await.context("read type")?;
|
||||
let channel = r.read_u16().await.context("read channel")?;
|
||||
let kind = r.read_u8().await?;
|
||||
let channel = r.read_u16().await?;
|
||||
let channel = ChannelNum::new(channel);
|
||||
let size = r.read_u32().await.context("read size")?;
|
||||
let size = r.read_u32().await?;
|
||||
|
||||
let mut payload = vec![0; size.try_into().unwrap()];
|
||||
r.read_exact(&mut payload).await.context("read payload")?;
|
||||
r.read_exact(&mut payload).await?;
|
||||
|
||||
let frame_end = r.read_u8().await.context("read frame end")?;
|
||||
let frame_end = r.read_u8().await?;
|
||||
|
||||
if frame_end != REQUIRED_FRAME_END {
|
||||
return Err(ProtocolError::Fatal.into());
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue