Skip to content

Commit

Permalink
fix: buffer
Browse files Browse the repository at this point in the history
  • Loading branch information
fengyc committed Jun 14, 2023
1 parent 96b6683 commit 5fc7477
Showing 1 changed file with 4 additions and 9 deletions.
13 changes: 4 additions & 9 deletions src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -240,28 +240,24 @@ async fn read_ams_packet<T>(reader: &mut T, buf: &mut BytesMut, packet_size: usi
where
T: AsyncRead + Unpin,
{
let mut size;

// check buffer
buf.reserve(AmsTcpHeaderSlice::SIZE);
unsafe { buf.set_len(AmsTcpHeaderSlice::SIZE) };

// read ams tcp header
unsafe { buf.set_len(buf.capacity()) };
reader.read_exact(&mut buf[..]).await?;
let ams_tcp_header = AmsTcpHeaderSlice::try_from(&buf[..])?;
let ams_length = ams_tcp_header.length() as usize;
size = buf.len();

// check buffer again
ensure!(ams_length <= packet_size - AmsTcpHeaderSlice::SIZE, "invalid packet");
buf.reserve(ams_length);
unsafe { buf.set_len(buf.len() + ams_length) }

// read ams packet content
unsafe { buf.set_len(buf.capacity()) };
reader.read_exact(&mut buf[size..]).await?;
size = buf.capacity();
reader.read_exact(&mut buf[AmsTcpHeaderSlice::SIZE..]).await?;

Ok(size)
Ok(buf.len())
}

type EventReceiver = broadcast::Receiver<()>;
Expand Down Expand Up @@ -291,7 +287,6 @@ where
_ = stop_rx.recv() => break,
r = read_ams_packet(&mut reader, &mut buffer, max_packet_size) => r?,
};
unsafe { buffer.set_len(n) };

// parse result
let ams_header = parse_ams_packet_slice(&buffer)?.1;
Expand Down

0 comments on commit 5fc7477

Please sign in to comment.