udp: don't add messages to resend queue more than once (bugfix)

This commit is contained in:
Joakim Frostegård 2025-02-03 00:01:35 +01:00
parent 94e3af2463
commit 2df331c5ab

View file

@ -278,8 +278,9 @@ impl<V: IpVersion> Socket<V> {
Ok(_) => (), Ok(_) => (),
Err(err) => match self.opt_resend_buffer.as_mut() { Err(err) => match self.opt_resend_buffer.as_mut() {
Some(resend_buffer) Some(resend_buffer)
if !disable_resend_buffer && (err.raw_os_error() == Some(libc::ENOBUFS)) if !disable_resend_buffer
|| (err.kind() == ErrorKind::WouldBlock) => && ((err.raw_os_error() == Some(libc::ENOBUFS))
|| (err.kind() == ErrorKind::WouldBlock)) =>
{ {
if resend_buffer.len() < shared.config.network.resend_buffer_max_len { if resend_buffer.len() < shared.config.network.resend_buffer_max_len {
::log::debug!("Adding response to resend queue, since sending it to {} failed with: {:#}", addr, err); ::log::debug!("Adding response to resend queue, since sending it to {} failed with: {:#}", addr, err);