From e3b29723a45670ba47c5ef08f3c9e11903f4d54b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20Frosteg=C3=A5rd?= Date: Wed, 8 Apr 2020 21:45:25 +0200 Subject: [PATCH] aquatic: when config recv_buffer_size is zero, don't set on socket --- aquatic/src/lib/config.rs | 1 + aquatic/src/lib/network.rs | 14 ++++++++------ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/aquatic/src/lib/config.rs b/aquatic/src/lib/config.rs index e6ad134..fbc62a3 100644 --- a/aquatic/src/lib/config.rs +++ b/aquatic/src/lib/config.rs @@ -16,6 +16,7 @@ pub struct NetworkConfig { pub max_scrape_torrents: u8, pub max_response_peers: usize, pub peer_announce_interval: i32, + /// When value is zero, use OS default (don't set on socket) pub recv_buffer_size: usize, pub poll_event_capacity: usize, } diff --git a/aquatic/src/lib/network.rs b/aquatic/src/lib/network.rs index e5c127f..e3ea256 100644 --- a/aquatic/src/lib/network.rs +++ b/aquatic/src/lib/network.rs @@ -88,12 +88,14 @@ fn create_socket(config: &Config) -> ::std::net::UdpSocket { socket.set_nonblocking(true) .expect("socket: set nonblocking"); - if let Err(err) = socket.set_recv_buffer_size(config.network.recv_buffer_size){ - eprintln!( - "socket: failed setting recv buffer to {}: {:?}", - config.network.recv_buffer_size, - err - ); + if config.network.recv_buffer_size != 0 { + if let Err(err) = socket.set_recv_buffer_size(config.network.recv_buffer_size){ + eprintln!( + "socket: failed setting recv buffer to {}: {:?}", + config.network.recv_buffer_size, + err + ); + } } socket