aquatic: when config recv_buffer_size is zero, don't set on socket

This commit is contained in:
Joakim Frostegård 2020-04-08 21:45:25 +02:00
parent ad68dda9f5
commit e3b29723a4
2 changed files with 9 additions and 6 deletions

View file

@ -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,
}

View file

@ -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