From 019ac27a85e98feea4312f8b7125cf92ca5a6bd6 Mon Sep 17 00:00:00 2001 From: Kyle Simpson Date: Tue, 8 Aug 2023 20:48:46 +0100 Subject: [PATCH] Driver: Don't trim recv_buffer on MacOS This should fix #193 -- it seems that a zero-size recv buffer is an invalid argument as far as darwin is concerned. Tested with `cargo make ready`. --- src/driver/connection/mod.rs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/driver/connection/mod.rs b/src/driver/connection/mod.rs index b7b90ff..a8d13ab 100644 --- a/src/driver/connection/mod.rs +++ b/src/driver/connection/mod.rs @@ -75,7 +75,9 @@ impl Connection { .await?; loop { - let Some(value) = client.recv_json().await? else { continue }; + let Some(value) = client.recv_json().await? else { + continue; + }; match value { GatewayEvent::Ready(r) => { @@ -112,7 +114,10 @@ impl Connection { udp } else { let socket = Socket::from(udp.into_std()?); + + #[cfg(not(target_os = "macos"))] socket.set_recv_buffer_size(0)?; + UdpSocket::from_std(socket.into())? }; @@ -279,7 +284,9 @@ impl Connection { let mut resumed = None; loop { - let Some(value) = client.recv_json().await? else { continue }; + let Some(value) = client.recv_json().await? else { + continue; + }; match value { GatewayEvent::Resumed => { @@ -331,7 +338,9 @@ fn generate_url(endpoint: &mut String) -> Result { #[inline] async fn init_cipher(client: &mut WsStream, mode: CryptoMode) -> Result { loop { - let Some(value) = client.recv_json().await? else { continue }; + let Some(value) = client.recv_json().await? else { + continue; + }; match value { GatewayEvent::SessionDescription(desc) => {