unit_ref_unset(&n->service);
n->event_source = sd_event_source_unref(n->event_source);
-
- if (n->starter_fd >= 0) {
- close_nointr_nofail(n->starter_fd);
- n->starter_fd = -1;
- }
+ n->starter_fd = safe_close(n->starter_fd);
}
static int busname_add_default_default_dependencies(BusName *n) {
return 0;
}
-
-
static int busname_verify(BusName *n) {
char *e;
if (n->starter_fd <= 0)
return;
- close_nointr_nofail(n->starter_fd);
- n->starter_fd = -1;
+ n->starter_fd = safe_close(n->starter_fd);
}
static int busname_watch_fd(BusName *n) {
if (n->starter_fd >= 0)
return 0;
- n->starter_fd = bus_kernel_create_starter(UNIT(n)->manager->running_as == SYSTEMD_SYSTEM ? "system" : "user", n->name);
+ n->starter_fd = bus_kernel_create_starter(UNIT(n)->manager->running_as == SYSTEMD_SYSTEM ? "system" : "user",
+ n->name, n->policy);
if (n->starter_fd < 0) {
log_warning_unit(UNIT(n)->id, "Failed to create starter fd: %s", strerror(-n->starter_fd));
return n->starter_fd;
if (safe_atoi(value, &fd) < 0 || fd < 0 || !fdset_contains(fds, fd))
log_debug_unit(u->id, "Failed to parse starter fd value %s", value);
else {
- if (n->starter_fd >= 0)
- close_nointr_nofail(n->starter_fd);
+ safe_close(n->starter_fd);
n->starter_fd = fdset_remove(fds, fd);
}
} else
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),