diff options
author | Lennart Poettering <lennart@poettering.net> | 2019-03-26 16:19:35 +0100 |
---|---|---|
committer | The Plumber <50238977+systemd-rhel-bot@users.noreply.github.com> | 2020-11-02 15:01:00 +0100 |
commit | cfb124260a0a9e68102a373c0d136f792e2d4ea7 (patch) | |
tree | 56dab9c80f3f57b31d83bd5cf1538d1995c1ef46 | |
parent | 7569756d005d4f780fffd2504eb6f461982833f2 (diff) | |
download | systemd-cfb124260a0a9e68102a373c0d136f792e2d4ea7.tar.gz |
systemctl: split out extra args generation into helper function of its own
(cherry picked from commit 94369fc0663255bbd327f97dba288ececf51a514)
Related: #846319
-rw-r--r-- | src/systemctl/systemctl.c | 36 |
1 files changed, 21 insertions, 15 deletions
diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c index 4af9deb98d..e7a8fd559f 100644 --- a/src/systemctl/systemctl.c +++ b/src/systemctl/systemctl.c @@ -3002,6 +3002,25 @@ static enum action verb_to_action(const char *verb) { return _ACTION_INVALID; } +static const char** make_extra_args(const char *extra_args[static 4]) { + size_t n = 0; + + if (arg_scope != UNIT_FILE_SYSTEM) + extra_args[n++] = "--user"; + + if (arg_transport == BUS_TRANSPORT_REMOTE) { + extra_args[n++] = "-H"; + extra_args[n++] = arg_host; + } else if (arg_transport == BUS_TRANSPORT_MACHINE) { + extra_args[n++] = "-M"; + extra_args[n++] = arg_host; + } else + assert(arg_transport == BUS_TRANSPORT_LOCAL); + + extra_args[n] = NULL; + return extra_args; +} + static int start_unit(int argc, char *argv[], void *userdata) { _cleanup_(bus_wait_for_jobs_freep) BusWaitForJobs *w = NULL; _cleanup_(wait_context_free) WaitContext wait_context = {}; @@ -3103,22 +3122,9 @@ static int start_unit(int argc, char *argv[], void *userdata) { } if (!arg_no_block) { - const char* extra_args[4] = {}; - int arg_count = 0; - - if (arg_scope != UNIT_FILE_SYSTEM) - extra_args[arg_count++] = "--user"; - - assert(IN_SET(arg_transport, BUS_TRANSPORT_LOCAL, BUS_TRANSPORT_REMOTE, BUS_TRANSPORT_MACHINE)); - if (arg_transport == BUS_TRANSPORT_REMOTE) { - extra_args[arg_count++] = "-H"; - extra_args[arg_count++] = arg_host; - } else if (arg_transport == BUS_TRANSPORT_MACHINE) { - extra_args[arg_count++] = "-M"; - extra_args[arg_count++] = arg_host; - } + const char* extra_args[4]; - r = bus_wait_for_jobs(w, arg_quiet, extra_args); + r = bus_wait_for_jobs(w, arg_quiet, make_extra_args(extra_args)); if (r < 0) return r; |