From 516d27bc42bbf4beff0f825a2ec1555f2e3c5ab5 Mon Sep 17 00:00:00 2001 From: Haoran Yi Date: Wed, 16 Nov 2022 09:49:26 -0600 Subject: [PATCH] saturating max_concurrent_uni_streams and receive_window instead of overflow --- streamer/src/quic.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/streamer/src/quic.rs b/streamer/src/quic.rs index 22590cfd8..704a3b2d8 100644 --- a/streamer/src/quic.rs +++ b/streamer/src/quic.rs @@ -81,10 +81,15 @@ pub(crate) fn configure_server( let config = Arc::get_mut(&mut server_config.transport).unwrap(); // QUIC_MAX_CONCURRENT_STREAMS doubled, which was found to improve reliability - const MAX_CONCURRENT_UNI_STREAMS: u32 = (QUIC_MAX_UNSTAKED_CONCURRENT_STREAMS * 2) as u32; + const MAX_CONCURRENT_UNI_STREAMS: u32 = + (QUIC_MAX_UNSTAKED_CONCURRENT_STREAMS.saturating_mul(2)) as u32; config.max_concurrent_uni_streams(MAX_CONCURRENT_UNI_STREAMS.into()); config.stream_receive_window((PACKET_DATA_SIZE as u32).into()); - config.receive_window((PACKET_DATA_SIZE as u32 * MAX_CONCURRENT_UNI_STREAMS).into()); + config.receive_window( + (PACKET_DATA_SIZE as u32) + .saturating_mul(MAX_CONCURRENT_UNI_STREAMS) + .into(), + ); let timeout = IdleTimeout::from(VarInt::from_u32(QUIC_MAX_TIMEOUT_MS)); config.max_idle_timeout(Some(timeout));