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
This commit is contained in:
Luca Boccassi
2025-06-09 17:24:24 +01:00
committed by Mike Yuan
parent d9af093daf
commit bb887cf22e
3 changed files with 5 additions and 3 deletions

View 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) {

View 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);

View 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);