]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
core/dbus: use Manager.prefix where appropriate
authorMike Yuan <me@yhndnzj.com>
Wed, 17 Jul 2024 16:07:58 +0000 (18:07 +0200)
committerMike Yuan <me@yhndnzj.com>
Sun, 21 Jul 2024 20:48:53 +0000 (22:48 +0200)
src/core/dbus.c

index 39cce302db89af929b51de70c42a8e661e436781..b6480937ee14985885e3d93344737d708d70dca1 100644 (file)
@@ -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);