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