chiark / gitweb /
Print kdbus path when opening fails
[elogind.git] / src / core / busname.c
index 275241507f2107ae77ab61b1585f9718303cbd67..39ea6a0d939cbc5aa2e89e7fc7ca5079472fbd30 100644 (file)
@@ -290,14 +290,19 @@ static int busname_watch_fd(BusName *n) {
 }
 
 static int busname_open_fd(BusName *n) {
+        _cleanup_free_ char *path = NULL;
+        const char *mode;
+
         assert(n);
 
         if (n->starter_fd >= 0)
                 return 0;
 
-        n->starter_fd = bus_kernel_open_bus_fd(UNIT(n)->manager->running_as == SYSTEMD_SYSTEM ? "system" : "user");
+        mode = UNIT(n)->manager->running_as == SYSTEMD_SYSTEM ? "system" : "user";
+        n->starter_fd = bus_kernel_open_bus_fd(mode, &path);
         if (n->starter_fd < 0) {
-                log_warning_unit(UNIT(n)->id, "Failed to create starter fd: %s", strerror(-n->starter_fd));
+                log_warning_unit(UNIT(n)->id, "Failed to open %s: %s",
+                                 path ?: "kdbus", strerror(-n->starter_fd));
                 return n->starter_fd;
         }
 
@@ -501,7 +506,7 @@ static void busname_enter_making(BusName *n) {
                 goto fail;
 
         if (n->policy) {
-                /* If there's a policy we need to resolve user/group
+                /* If there is a policy, we need to resolve user/group
                  * names, which we can't do from PID1, hence let's
                  * fork. */
                 busname_unwatch_control_pid(n);
@@ -514,7 +519,7 @@ static void busname_enter_making(BusName *n) {
 
                 busname_set_state(n, BUSNAME_MAKING);
         } else {
-                /* If there's no policy then we can do everything
+                /* If there is no policy, we can do everything
                  * directly from PID 1, hence do so. */
 
                 r = bus_kernel_make_starter(n->starter_fd, n->name, n->activating, n->accept_fd, NULL, n->policy_world);
@@ -763,7 +768,7 @@ static void busname_sigchld_event(Unit *u, pid_t pid, int code, int status) {
                 f = BUSNAME_FAILURE_EXIT_CODE;
         else if (code == CLD_KILLED)
                 f = BUSNAME_FAILURE_SIGNAL;
-        else if (code == CLD_KILLED)
+        else if (code == CLD_DUMPED)
                 f = BUSNAME_FAILURE_CORE_DUMP;
         else
                 assert_not_reached("Unknown sigchld code");