systemctl: use FOREACH_ARRAY and FOREACH_ELEMENT more

This commit is contained in:
Mike Yuan
2024-04-19 10:08:35 +08:00
parent 8c8687852a
commit 848cdaa6dd
2 changed files with 18 additions and 12 deletions
+16 -10
View File
@@ -35,20 +35,24 @@ static const struct {
{ "force-reload", "ReloadOrTryRestartUnit", "reload-or-try-restart" }, /* legacy alias */
};
static const char *verb_to_method(const char *verb) {
for (size_t i = 0; i < ELEMENTSOF(unit_actions); i++)
if (streq_ptr(unit_actions[i].verb, verb))
return unit_actions[i].method;
static const char* verb_to_method(const char *verb) {
assert(verb);
return "StartUnit";
FOREACH_ELEMENT(i, unit_actions)
if (streq(i->verb, verb))
return i->method;
return "StartUnit";
}
static const char *verb_to_job_type(const char *verb) {
for (size_t i = 0; i < ELEMENTSOF(unit_actions); i++)
if (streq_ptr(unit_actions[i].verb, verb))
return unit_actions[i].job_type;
static const char* verb_to_job_type(const char *verb) {
assert(verb);
return "start";
FOREACH_ELEMENT(i, unit_actions)
if (streq(i->verb, verb))
return i->job_type;
return "start";
}
static int start_unit_one(
@@ -240,6 +244,8 @@ const struct action_metadata action_table[_ACTION_MAX] = {
};
enum action verb_to_action(const char *verb) {
assert(verb);
for (enum action i = 0; i < _ACTION_MAX; i++)
if (streq_ptr(action_table[i].verb, verb))
return i;
+2 -2
View File
@@ -64,8 +64,8 @@ int acquire_bus(BusFocus focus, sd_bus **ret) {
}
void release_busses(void) {
for (BusFocus w = 0; w < _BUS_FOCUS_MAX; w++)
buses[w] = sd_bus_flush_close_unref(buses[w]);
FOREACH_ARRAY(w, buses, _BUS_FOCUS_MAX)
*w = sd_bus_flush_close_unref(*w);
}
void ask_password_agent_open_maybe(void) {