refactor(client): dynamic receive buffer sizing based on negotiated parameters

This commit is contained in:
Nils Andreas Svee committed 2026-05-10 20:56:43 +07:00
1 parent cdf41f2a82
commit 7cbc30a3a2
1 file changed
+6 -5
+6 -5
View File
@@ -5,9 +5,9 @@ use std::{
}; };
use irtt_proto::{ use irtt_proto::{
close::CloseRequest, decode_echo_reply, encode_close_request, encode_echo_request, close::CloseRequest, decode_echo_reply, echo_packet_len, encode_close_request,
encode_open_request, flags, EchoReply, EchoRequest, OpenReply, OpenRequest, Params, ServerFill, encode_echo_request, encode_open_request, flags, EchoReply, EchoRequest, OpenReply,
TimestampFields, PROTOCOL_VERSION, OpenRequest, Params, ServerFill, TimestampFields, PROTOCOL_VERSION,
}; };
use crate::{ use crate::{
@@ -24,7 +24,7 @@ use crate::{
}; };
const MAX_OPEN_PACKET_SIZE: usize = 512; const MAX_OPEN_PACKET_SIZE: usize = 512;
const MAX_RECV_PACKET_SIZE: usize = 2048; const MIN_RECV_BUFFER_SIZE: usize = 2048;
#[derive(Debug)] #[derive(Debug)]
pub struct Client { pub struct Client {
@@ -238,7 +238,8 @@ impl Client {
ClientPhase::NoTestCompleted => return Err(ClientError::AlreadyCompleted), ClientPhase::NoTestCompleted => return Err(ClientError::AlreadyCompleted),
} }
let mut buf = [0_u8; MAX_RECV_PACKET_SIZE]; let buf_size = self.recv_buffer_size();
let mut buf = vec![0_u8; buf_size];
let size = match self.socket.recv(&mut buf) { let size = match self.socket.recv(&mut buf) {
Ok(size) => size, Ok(size) => size,
Err(err) Err(err)