Refactor, simplify command + args composition for readability

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This commit is contained in:
Joachim Wiberg
2021-02-17 11:06:46 +01:00
parent e5a53c175a
commit 13893b9f32
+11 -8
View File
@@ -335,7 +335,7 @@ static int service_start(svc_t *svc)
int uid = getuser(svc->username, &home); int uid = getuser(svc->username, &home);
int gid = getgroup(svc->group); int gid = getgroup(svc->group);
#endif #endif
char *args[MAX_NUM_SVC_ARGS]; char *args[MAX_NUM_SVC_ARGS + 1];
/* Set configured limits */ /* Set configured limits */
for (int i = 0; i < RLIMIT_NLIMITS; i++) { for (int i = 0; i < RLIMIT_NLIMITS; i++) {
@@ -362,8 +362,11 @@ static int service_start(svc_t *svc)
} }
if (!svc_is_sysv(svc)) { if (!svc_is_sysv(svc)) {
for (i = 0; i < (MAX_NUM_SVC_ARGS - 1) && svc->args[i][0] != 0; i++) for (i = 0; i < MAX_NUM_SVC_ARGS; i++) {
if (strlen(svc->args[i]) == 0)
continue;
args[i] = svc->args[i]; args[i] = svc->args[i];
}
} else { } else {
i = 0; i = 0;
args[i++] = svc->cmd; args[i++] = svc->cmd;
@@ -397,12 +400,12 @@ static int service_start(svc_t *svc)
} else if (debug) { } else if (debug) {
char buf[CMD_SIZE] = ""; char buf[CMD_SIZE] = "";
for (i = 0; i < (MAX_NUM_SVC_ARGS - 1) && svc->args[i][0] != 0; i++) { for (i = 1; i < MAX_NUM_SVC_ARGS; i++) {
char arg[MAX_ARG_LEN + 1]; if (strlen(svc->args[i]) == 0)
continue;
snprintf(arg, sizeof(arg), "%s ", svc->args[i]); if (buf[0])
if (strlen(arg) < (sizeof(buf) - strlen(buf))) strlcat(buf, " ", sizeof(buf));
strlcat(buf, arg, sizeof(buf)); strlcat(buf, svc->args[i], sizeof(buf));
} }
_d("Starting %s %s", svc->cmd, buf); _d("Starting %s %s", svc->cmd, buf);
} }