From cc84f13ed728d219d910d069bbfbda3600cdafe8 Mon Sep 17 00:00:00 2001 From: Dreaded_X Date: Thu, 15 Oct 2026 03:31:14 +0200 Subject: [PATCH] feat: Use fixed size buffer for receiving packet --- src/tftp/packet.rs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/tftp/packet.rs b/src/tftp/packet.rs index 28612a3..1461dc1 100644 --- a/src/tftp/packet.rs +++ b/src/tftp/packet.rs @@ -310,8 +310,8 @@ impl Packet { } pub async fn recv_from(socket: &UdpSocket) -> Result<(Self, SocketAddr), Error> { - let mut buf = Vec::with_capacity(PACKET_SIZE); - let (_, src) = socket.recv_buf_from(&mut buf).await?; + let mut buf = [0u8; PACKET_SIZE]; + let (_, src) = socket.recv_from(&mut buf).await?; let packet = buf.try_into()?; @@ -342,10 +342,12 @@ impl TryFrom<&Packet> for Vec { } } -impl TryFrom> for Packet { +impl TryFrom<[u8; PACKET_SIZE]> for Packet { type Error = Error; - fn try_from(buf: Vec) -> Result>>::Error> { + fn try_from( + buf: [u8; PACKET_SIZE], + ) -> Result>::Error> { let mut reader = BufReader::new(Cursor::new(buf)); Packet::decode(&mut reader)