From: Zbigniew Jędrzejewski-Szmek Date: Wed, 26 Nov 2025 21:11:24 +0000 (+0100) Subject: machined: add description to varlink server, unify error messages X-Git-Tag: v259-rc3~38 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=12391431c233c6512b9501260ed05f2c78066c5a;p=thirdparty%2Fsystemd.git machined: add description to varlink server, unify error messages manager_varlink_init_resolve_hook and manager_varlink_init_userdb are very similar, but one didn't set a description and the other one had an error message which didn't print the offending path. Define constants for the paths, and also change other similar constants to have slightly shorter names. (It's an "address" and "path", but we don't need to have both parts in the name, esp. that it makes the name very long.) --- diff --git a/src/basic/constants.h b/src/basic/constants.h index 7a09fbf878e..a26cff4062c 100644 --- a/src/basic/constants.h +++ b/src/basic/constants.h @@ -59,9 +59,13 @@ #define DEFAULT_RLIMIT_MEMLOCK (1024ULL*1024ULL*8ULL) /* Path where PID1 listens for varlink subscriptions from systemd-oomd to notify of changes in ManagedOOM settings. */ -#define VARLINK_ADDR_PATH_MANAGED_OOM_SYSTEM "/run/systemd/io.systemd.ManagedOOM" +#define VARLINK_PATH_MANAGED_OOM_SYSTEM "/run/systemd/io.systemd.ManagedOOM" /* Path where systemd-oomd listens for varlink connections from user managers to report changes in ManagedOOM settings. */ -#define VARLINK_ADDR_PATH_MANAGED_OOM_USER "/run/systemd/oom/io.systemd.ManagedOOM" +#define VARLINK_PATH_MANAGED_OOM_USER "/run/systemd/oom/io.systemd.ManagedOOM" +/* Path where systemd-machined listens to userdb varlink queries */ +#define VARLINK_PATH_MACHINED_USERDB "/run/systemd/userdb/io.systemd.Machine" +/* Path where systemd-machined listens to resolve.hook varlink queries */ +#define VARLINK_PATH_MACHINED_RESOLVE_HOOK "/run/systemd/resolve.hook/io.systemd.Machine" /* Recommended baseline - see README for details */ #define KERNEL_BASELINE_VERSION "5.7" diff --git a/src/core/varlink.c b/src/core/varlink.c index d133b6a640e..fe077c699c5 100644 --- a/src/core/varlink.c +++ b/src/core/varlink.c @@ -169,7 +169,7 @@ static int managed_oom_vl_reply(sd_varlink *link, sd_json_variant *parameters, c m->managed_oom_varlink = sd_varlink_unref(link); - log_debug("Reconnecting to %s", VARLINK_ADDR_PATH_MANAGED_OOM_USER); + log_debug("Reconnecting to %s", VARLINK_PATH_MANAGED_OOM_USER); r = manager_varlink_managed_oom_connect(m); if (r <= 0) @@ -194,7 +194,7 @@ static int manager_varlink_managed_oom_connect(Manager *m) { if (MANAGER_IS_TEST_RUN(m)) return 0; - r = sd_varlink_connect_address(&link, VARLINK_ADDR_PATH_MANAGED_OOM_USER); + r = sd_varlink_connect_address(&link, VARLINK_PATH_MANAGED_OOM_USER); if (r == -ENOENT) return 0; if (ERRNO_IS_NEG_DISCONNECT(r)) { @@ -202,7 +202,7 @@ static int manager_varlink_managed_oom_connect(Manager *m) { return 0; } if (r < 0) - return log_error_errno(r, "Failed to connect to '%s': %m", VARLINK_ADDR_PATH_MANAGED_OOM_USER); + return log_error_errno(r, "Failed to connect to '%s': %m", VARLINK_PATH_MANAGED_OOM_USER); sd_varlink_set_userdata(link, m); @@ -435,7 +435,7 @@ static int manager_varlink_init_system(Manager *m) { if (!MANAGER_IS_TEST_RUN(m)) { FOREACH_STRING(address, "/run/systemd/userdb/io.systemd.DynamicUser", - VARLINK_ADDR_PATH_MANAGED_OOM_SYSTEM, + VARLINK_PATH_MANAGED_OOM_SYSTEM, "/run/systemd/io.systemd.Manager") { /* We might have got sockets through deserialization. Do not bind to them twice. */ if (!fresh && varlink_server_contains_socket(m->varlink_server, address)) diff --git a/src/machine/machined-varlink.c b/src/machine/machined-varlink.c index f4714c545d8..f83cbb85626 100644 --- a/src/machine/machined-varlink.c +++ b/src/machine/machined-varlink.c @@ -6,6 +6,7 @@ #include "sd-varlink.h" #include "bus-polkit.h" +#include "constants.h" #include "discover-image.h" #include "errno-util.h" #include "format-util.h" @@ -745,6 +746,8 @@ static int manager_varlink_init_userdb(Manager *m) { if (r < 0) return log_error_errno(r, "Failed to allocate varlink server object: %m"); + (void) sd_varlink_server_set_description(s, "varlink-userdb"); + r = sd_varlink_server_add_interface(s, &vl_interface_io_systemd_UserDatabase); if (r < 0) return log_error_errno(r, "Failed to add UserDatabase interface to varlink server: %m"); @@ -757,9 +760,9 @@ static int manager_varlink_init_userdb(Manager *m) { if (r < 0) return log_error_errno(r, "Failed to register varlink methods: %m"); - r = sd_varlink_server_listen_address(s, "/run/systemd/userdb/io.systemd.Machine", 0666 | SD_VARLINK_SERVER_MODE_MKDIR_0755); + r = sd_varlink_server_listen_address(s, VARLINK_PATH_MACHINED_USERDB, 0666 | SD_VARLINK_SERVER_MODE_MKDIR_0755); if (r < 0) - return log_error_errno(r, "Failed to bind to varlink socket '/run/systemd/userdb/io.systemd.Machine': %m"); + return log_error_errno(r, "Failed to bind to varlink socket %s: %m", VARLINK_PATH_MACHINED_USERDB); r = sd_varlink_server_attach_event(s, m->event, SD_EVENT_PRIORITY_NORMAL); if (r < 0) @@ -889,9 +892,11 @@ static int manager_varlink_init_resolve_hook(Manager *m) { if (r < 0) return log_error_errno(r, "Failed to bind on resolve hook disconnection events: %m"); - r = sd_varlink_server_listen_address(s, "/run/systemd/resolve.hook/io.systemd.Machine", 0666 | SD_VARLINK_SERVER_MODE_MKDIR_0755); + r = sd_varlink_server_listen_address(s, VARLINK_PATH_MACHINED_RESOLVE_HOOK, + 0666 | SD_VARLINK_SERVER_MODE_MKDIR_0755); if (r < 0) - return log_error_errno(r, "Failed to bind to varlink socket: %m"); + return log_error_errno(r, "Failed to bind to varlink socket %s: %m", + VARLINK_PATH_MACHINED_RESOLVE_HOOK); r = sd_varlink_server_attach_event(s, m->event, SD_EVENT_PRIORITY_NORMAL); if (r < 0) diff --git a/src/oom/oomd-manager.c b/src/oom/oomd-manager.c index 49c2241bdde..3fc22d43e5a 100644 --- a/src/oom/oomd-manager.c +++ b/src/oom/oomd-manager.c @@ -334,9 +334,9 @@ static int acquire_managed_oom_connect(Manager *m) { assert(m); assert(m->event); - r = sd_varlink_connect_address(&link, VARLINK_ADDR_PATH_MANAGED_OOM_SYSTEM); + r = sd_varlink_connect_address(&link, VARLINK_PATH_MANAGED_OOM_SYSTEM); if (r < 0) - return log_error_errno(r, "Failed to connect to " VARLINK_ADDR_PATH_MANAGED_OOM_SYSTEM ": %m"); + return log_error_errno(r, "Failed to connect to %s: %m", VARLINK_PATH_MANAGED_OOM_SYSTEM); (void) sd_varlink_set_userdata(link, m); (void) sd_varlink_set_description(link, "oomd"); @@ -768,11 +768,12 @@ static int manager_varlink_init(Manager *m, int fd) { return log_error_errno(r, "Failed to register varlink methods: %m"); if (fd < 0) - r = sd_varlink_server_listen_address(s, VARLINK_ADDR_PATH_MANAGED_OOM_USER, 0666); + r = sd_varlink_server_listen_address(s, VARLINK_PATH_MANAGED_OOM_USER, 0666); else r = sd_varlink_server_listen_fd(s, fd); if (r < 0) - return log_error_errno(r, "Failed to bind to varlink socket '" VARLINK_ADDR_PATH_MANAGED_OOM_USER "': %m"); + return log_error_errno(r, "Failed to bind to varlink socket %s: %m", + VARLINK_PATH_MANAGED_OOM_USER); r = sd_varlink_server_attach_event(s, m->event, SD_EVENT_PRIORITY_NORMAL); if (r < 0)