]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
socket: downgrade not-supported logging for SO_PASSSEC
authorLuca Boccassi <luca.boccassi@gmail.com>
Mon, 9 Jun 2025 16:24:24 +0000 (17:24 +0100)
committerMike Yuan <me@yhndnzj.com>
Mon, 9 Jun 2025 19:51:39 +0000 (21:51 +0200)
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
src/journal/journald-native.c
src/journal/journald-syslog.c

index f848e46d84a9e5840180025d31beaca3d5e532c8..ae1a48c9f526ec101e35890d7664f1c6af3bb620 100644 (file)
@@ -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) {
index 9a622d272cfce169b816ecc686544d56796eb08e..8d2459b340c08165b61c06d715c97de1f2b8fcbc 100644 (file)
@@ -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);
index 8493bc24bd511fcfe1ebcc9a1ee38751ecdfac80..3ef36ee7744f5ebd65308ee07ab6b284bd5d1e5b 100644 (file)
@@ -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);