X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcore%2Fbusname.c;h=22d2a6d24b49aaed7e338749b4677cfa89c362be;hb=671174136525ddf208cdbe75d6d6bd159afa961f;hp=6be1b8ba5dc6f4c9814510ff9d923545bcd45d90;hpb=a4152e3fe28b53b8919cc404dd7eca7ead1bf9bd;p=elogind.git diff --git a/src/core/busname.c b/src/core/busname.c index 6be1b8ba5..22d2a6d24 100644 --- a/src/core/busname.c +++ b/src/core/busname.c @@ -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; } @@ -446,7 +451,7 @@ static void busname_enter_signal(BusName *n, BusNameState state, BusNameResult f n->control_pid, false); if (r < 0) { - log_warning_unit(UNIT(n)->id, "%s failed to kill control proces: %s", UNIT(n)->id, strerror(-r)); + log_warning_unit(UNIT(n)->id, "%s failed to kill control process: %s", UNIT(n)->id, strerror(-r)); goto fail; } @@ -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"); @@ -906,14 +911,6 @@ static const char* const busname_result_table[_BUSNAME_RESULT_MAX] = { DEFINE_STRING_TABLE_LOOKUP(busname_result, BusNameResult); -static const char* const busname_policy_access_table[_BUSNAME_POLICY_ACCESS_MAX] = { - [BUSNAME_POLICY_ACCESS_SEE] = "see", - [BUSNAME_POLICY_ACCESS_TALK] = "talk", - [BUSNAME_POLICY_ACCESS_OWN] = "own", -}; - -DEFINE_STRING_TABLE_LOOKUP(busname_policy_access, BusNamePolicyAccess); - const UnitVTable busname_vtable = { .object_size = sizeof(BusName),