From bb887cf22e68b6c83ff8a9c9bccda04d95ac23b3 Mon Sep 17 00:00:00 2001 From: Luca Boccassi Date: Mon, 9 Jun 2025 17:24:24 +0100 Subject: [PATCH] socket: downgrade not-supported logging for SO_PASSSEC Kernel 6.16 started returning EOPNOTSUPP when a required kconfig is disabled. Downgrade to debug level in that case. Fixes https://github.com/systemd/systemd/issues/37783 --- src/core/socket.c | 2 +- src/journal/journald-native.c | 3 ++- src/journal/journald-syslog.c | 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/core/socket.c b/src/core/socket.c index f848e46d84a..ae1a48c9f52 100644 --- a/src/core/socket.c +++ b/src/core/socket.c @@ -1075,7 +1075,7 @@ static void socket_apply_socket_options(Socket *s, SocketPort *p, int fd) { if (s->pass_sec) { r = setsockopt_int(fd, SOL_SOCKET, SO_PASSSEC, true); if (r < 0) - log_unit_warning_errno(UNIT(s), r, "SO_PASSSEC failed: %m"); + log_unit_full_errno(UNIT(s), ERRNO_IS_NEG_NOT_SUPPORTED(r) ? LOG_DEBUG : LOG_WARNING, r, "SO_PASSSEC failed: %m"); } if (s->pass_pktinfo) { diff --git a/src/journal/journald-native.c b/src/journal/journald-native.c index 9a622d272cf..8d2459b340c 100644 --- a/src/journal/journald-native.c +++ b/src/journal/journald-native.c @@ -7,6 +7,7 @@ #include "sd-event.h" #include "alloc-util.h" +#include "errno-util.h" #include "fd-util.h" #include "format-util.h" #include "iovec-util.h" @@ -492,7 +493,7 @@ int manager_open_native_socket(Manager *m, const char *native_socket) { if (mac_selinux_use()) { r = setsockopt_int(m->native_fd, SOL_SOCKET, SO_PASSSEC, true); if (r < 0) - log_warning_errno(r, "SO_PASSSEC failed: %m"); + log_full_errno(ERRNO_IS_NEG_NOT_SUPPORTED(r) ? LOG_DEBUG : LOG_WARNING, r, "SO_PASSSEC failed: %m"); } r = setsockopt_int(m->native_fd, SOL_SOCKET, SO_TIMESTAMP, true); diff --git a/src/journal/journald-syslog.c b/src/journal/journald-syslog.c index 8493bc24bd5..3ef36ee7744 100644 --- a/src/journal/journald-syslog.c +++ b/src/journal/journald-syslog.c @@ -7,6 +7,7 @@ #include "sd-messages.h" #include "alloc-util.h" +#include "errno-util.h" #include "fd-util.h" #include "format-util.h" #include "iovec-util.h" @@ -508,7 +509,7 @@ int manager_open_syslog_socket(Manager *m, const char *syslog_socket) { if (mac_selinux_use()) { r = setsockopt_int(m->syslog_fd, SOL_SOCKET, SO_PASSSEC, true); if (r < 0) - log_warning_errno(r, "SO_PASSSEC failed: %m"); + log_full_errno(ERRNO_IS_NEG_NOT_SUPPORTED(r) ? LOG_DEBUG : LOG_WARNING, r, "SO_PASSSEC failed: %m"); } r = setsockopt_int(m->syslog_fd, SOL_SOCKET, SO_TIMESTAMP, true); -- 2.47.3