From: Mike Yuan Date: Wed, 17 Jul 2024 16:07:58 +0000 (+0200) Subject: core/dbus: use Manager.prefix where appropriate X-Git-Tag: v257-rc1~846^2~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=93df5cf8d9718453bb372a3007cf583101e0c50c;p=thirdparty%2Fsystemd.git core/dbus: use Manager.prefix where appropriate --- diff --git a/src/core/dbus.c b/src/core/dbus.c index 39cce302db8..b6480937ee1 100644 --- a/src/core/dbus.c +++ b/src/core/dbus.c @@ -825,6 +825,8 @@ int bus_init_api(Manager *m) { _cleanup_(sd_bus_close_unrefp) sd_bus *bus = NULL; int r; + assert(m); + if (m->api_bus) return 0; @@ -932,22 +934,16 @@ int bus_init_private(Manager *m) { r = sockaddr_un_set_path(&sa.un, "/run/systemd/private"); } else { - _cleanup_free_ char *joined = NULL; - const char *e; - - e = secure_getenv("XDG_RUNTIME_DIR"); - if (!e) - return log_error_errno(SYNTHETIC_ERRNO(EHOSTDOWN), - "XDG_RUNTIME_DIR is not set, refusing."); + _cleanup_free_ char *p = NULL; - joined = path_join(e, "/systemd/private"); - if (!joined) + p = path_join(m->prefix[EXEC_DIRECTORY_RUNTIME], "systemd/private"); + if (!p) return log_oom(); - r = sockaddr_un_set_path(&sa.un, joined); + r = sockaddr_un_set_path(&sa.un, p); } if (r < 0) - return log_error_errno(r, "Can't set path for AF_UNIX socket to bind to: %m"); + return log_error_errno(r, "Failed set socket path for private bus: %m"); sa_len = r; (void) mkdir_parents_label(sa.un.sun_path, 0755);