static int busname_serialize(Unit *u, FILE *f, FDSet *fds) { BusName *n = BUSNAME(u); assert(n); assert(f); assert(fds); unit_serialize_item(u, f, "state", busname_state_to_string(n->state)); unit_serialize_item(u, f, "result", busname_result_to_string(n->result)); if (n->control_pid > 0) unit_serialize_item_format(u, f, "control-pid", PID_FMT, n->control_pid); if (n->starter_fd >= 0) { int copy; copy = fdset_put_dup(fds, n->starter_fd); if (copy < 0) return copy; unit_serialize_item_format(u, f, "starter-fd", "%i", copy); } return 0; }
static void busname_set_state(BusName *n, BusNameState state) { BusNameState old_state; assert(n); old_state = n->state; n->state = state; if (!IN_SET(state, BUSNAME_MAKING, BUSNAME_SIGTERM, BUSNAME_SIGKILL)) { n->timer_event_source = sd_event_source_unref(n->timer_event_source); busname_unwatch_control_pid(n); } if (state != BUSNAME_LISTENING) busname_unwatch_fd(n); if (!IN_SET(state, BUSNAME_LISTENING, BUSNAME_MAKING, BUSNAME_REGISTERED, BUSNAME_RUNNING)) busname_close_fd(n); if (state != old_state) log_unit_debug(UNIT(n)->id, "%s changed %s -> %s", UNIT(n)->id, busname_state_to_string(old_state), busname_state_to_string(state)); unit_notify(UNIT(n), state_translation_table[old_state], state_translation_table[state], true); }
static int busname_serialize(Unit *u, FILE *f, FDSet *fds) { BusName *n = BUSNAME(u); int r; assert(n); assert(f); assert(fds); unit_serialize_item(u, f, "state", busname_state_to_string(n->state)); unit_serialize_item(u, f, "result", busname_result_to_string(n->result)); if (n->control_pid > 0) unit_serialize_item_format(u, f, "control-pid", PID_FMT, n->control_pid); r = unit_serialize_item_fd(u, f, fds, "starter-fd", n->starter_fd); if (r < 0) return r; return 0; }
static void busname_dump(Unit *u, FILE *f, const char *prefix) { BusName *n = BUSNAME(u); assert(n); assert(f); fprintf(f, "%sBus Name State: %s\n" "%sResult: %s\n" "%sName: %s\n" "%sActivating: %s\n" "%sAccept FD: %s\n", prefix, busname_state_to_string(n->state), prefix, busname_result_to_string(n->result), prefix, n->name, prefix, yes_no(n->activating), prefix, yes_no(n->accept_fd)); if (n->control_pid > 0) fprintf(f, "%sControl PID: "PID_FMT"\n", prefix, n->control_pid); }
_pure_ static const char *busname_sub_state_to_string(Unit *u) { assert(u); return busname_state_to_string(BUSNAME(u)->state); }