refactor(client): dynamic receive buffer sizing based on negotiated parameters
This commit is contained in:
1 parent
cdf41f2a82
commit
7cbc30a3a2
1 file changed
+6
-5
@@ -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)
|
||||||
|
|||||||
Reference in new issue
Block a user