From: W.C.A. Wijngaards Date: Mon, 15 Sep 2025 14:11:27 +0000 (+0200) Subject: - Fix to print warning for when so-sndbuf setsockopt is not granted. X-Git-Tag: release-1.24.0~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=713b5db537320caecff87d05d816b5ef9fc8d921;p=thirdparty%2Funbound.git - Fix to print warning for when so-sndbuf setsockopt is not granted. --- diff --git a/doc/Changelog b/doc/Changelog index 3658bf608..264a097d1 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,6 +1,9 @@ 15 September 2025: Yorgos - Small debug output improvement when attaching an EDE. +15 September 2025: Wouter + - Fix to print warning for when so-sndbuf setsockopt is not granted. + 11 September 2025: Wouter - version set to 1.24.0 for release. - tag for 1.24.0rc1. diff --git a/services/listen_dnsport.c b/services/listen_dnsport.c index b7d3d747c..f7fcca194 100644 --- a/services/listen_dnsport.c +++ b/services/listen_dnsport.c @@ -450,7 +450,7 @@ create_udp_sock(int family, int socktype, struct sockaddr* addr, * /proc/sys/net/core/wmem_max or sysctl net.core.wmem_max */ if(setsockopt(s, SOL_SOCKET, SO_SNDBUFFORCE, (void*)&snd, (socklen_t)sizeof(snd)) < 0) { - if(errno != EPERM) { + if(errno != EPERM && errno != ENOBUFS) { log_err("setsockopt(..., SO_SNDBUFFORCE, " "...) failed: %s", sock_strerror(errno)); sock_close(s); @@ -458,15 +458,23 @@ create_udp_sock(int family, int socktype, struct sockaddr* addr, *inuse = 0; return -1; } + if(errno != EPERM) { + verbose(VERB_ALGO, "setsockopt(..., SO_SNDBUFFORCE, " + "...) was not granted: %s", sock_strerror(errno)); + } # endif /* SO_SNDBUFFORCE */ if(setsockopt(s, SOL_SOCKET, SO_SNDBUF, (void*)&snd, (socklen_t)sizeof(snd)) < 0) { - log_err("setsockopt(..., SO_SNDBUF, " - "...) failed: %s", sock_strerror(errno)); - sock_close(s); - *noproto = 0; - *inuse = 0; - return -1; + if(errno != ENOSYS && errno != ENOBUFS) { + log_err("setsockopt(..., SO_SNDBUF, " + "...) failed: %s", sock_strerror(errno)); + sock_close(s); + *noproto = 0; + *inuse = 0; + return -1; + } + log_warn("setsockopt(..., SO_SNDBUF, " + "...) was not granted: %s", sock_strerror(errno)); } /* check if we got the right thing or if system * reduced to some system max. Warn if so */