From 70ea16b0b4423f02e4f0c265320c336341363793 Mon Sep 17 00:00:00 2001 From: David Oberhollenzer Date: Fri, 24 Apr 2020 12:24:19 +0200 Subject: [PATCH] Cleanup: remove rdsvc flags With the previous changes, there were only used by the status command. Signed-off-by: David Oberhollenzer --- cmd/service/dumpscript.c | 2 +- cmd/service/list.c | 2 +- cmd/service/loadsvc.c | 4 ++-- cmd/service/servicecmd.h | 2 +- cmd/service/status.c | 4 +--- initd/supervisor.c | 4 ++-- lib/include/service.h | 12 ++---------- lib/init/rdsvc.c | 32 ++++++++++---------------------- lib/init/svcscan.c | 4 ++-- 9 files changed, 22 insertions(+), 44 deletions(-) diff --git a/cmd/service/dumpscript.c b/cmd/service/dumpscript.c index 23966ee..21acfac 100644 --- a/cmd/service/dumpscript.c +++ b/cmd/service/dumpscript.c @@ -93,7 +93,7 @@ static int cmd_dumpscript(int argc, char **argv) strcat(filename, argv[i]); } - svc = loadsvc(SVCDIR, filename, 0); + svc = loadsvc(SVCDIR, filename); if (svc == NULL) { fprintf(stderr, "Could not load service '%s'\n", filename); diff --git a/cmd/service/list.c b/cmd/service/list.c index 23f59fb..321df1f 100644 --- a/cmd/service/list.c +++ b/cmd/service/list.c @@ -24,7 +24,7 @@ static int cmd_list(int argc, char **argv) if (check_arguments(argv[0], argc, 1, 2)) return EXIT_FAILURE; - if (svcscan(SVCDIR, &list, 0)) { + if (svcscan(SVCDIR, &list)) { fprintf(stderr, "Error while reading services from %s\n", SVCDIR); ret = EXIT_FAILURE; diff --git a/cmd/service/loadsvc.c b/cmd/service/loadsvc.c index bbd15f8..8c6915b 100644 --- a/cmd/service/loadsvc.c +++ b/cmd/service/loadsvc.c @@ -5,7 +5,7 @@ #include #include -service_t *loadsvc(const char *directory, const char *filename, int flags) +service_t *loadsvc(const char *directory, const char *filename) { service_t *svc; int dirfd; @@ -17,7 +17,7 @@ service_t *loadsvc(const char *directory, const char *filename, int flags) return NULL; } - svc = rdsvc(dirfd, filename, flags); + svc = rdsvc(dirfd, filename); close(dirfd); return svc; } diff --git a/cmd/service/servicecmd.h b/cmd/service/servicecmd.h index d65c4b5..9b309e2 100644 --- a/cmd/service/servicecmd.h +++ b/cmd/service/servicecmd.h @@ -40,7 +40,7 @@ typedef struct command_t { /* Global list of available commands */ extern command_t *commands; -service_t *loadsvc(const char *directory, const char *filename, int flags); +service_t *loadsvc(const char *directory, const char *filename); /* Implemented in servicecmd.c. Prints program usage message and diff --git a/cmd/service/status.c b/cmd/service/status.c index 752b0c7..a13a450 100644 --- a/cmd/service/status.c +++ b/cmd/service/status.c @@ -128,9 +128,7 @@ static int cmd_status(int argc, char **argv) printf("\tTemplate name: %s\n", resp.service_name); printf("\tExit status: %d\n", resp.exit_status); - svc = loadsvc(SVCDIR, resp.filename, - RDSVC_NO_EXEC | RDSVC_NO_DEPS | - RDSVC_NO_CTTY | RDSVC_NO_FNAME); + svc = loadsvc(SVCDIR, resp.filename); if (svc == NULL) { fputs("\tError loading service file\n", stdout); diff --git a/initd/supervisor.c b/initd/supervisor.c index 8d53416..f9d3d7f 100644 --- a/initd/supervisor.c +++ b/initd/supervisor.c @@ -175,7 +175,7 @@ void supervisor_init(void) { int status = STATUS_OK; - if (svcscan(SVCDIR, &cfg, 0)) + if (svcscan(SVCDIR, &cfg)) status = STATUS_FAIL; target = TGT_BOOT; @@ -191,7 +191,7 @@ void supervisor_reload_config(void) service_t *svc; int i; - if (svcscan(SVCDIR, &newcfg, 0)) + if (svcscan(SVCDIR, &newcfg)) return; for (i = 0; i < TGT_MAX; ++i) { diff --git a/lib/include/service.h b/lib/include/service.h index a05c7ee..a01c6bb 100644 --- a/lib/include/service.h +++ b/lib/include/service.h @@ -35,14 +35,6 @@ enum { TGT_MAX }; -enum { - RDSVC_NO_FNAME = 0x01, /* do not store a copy of the filename */ - RDSVC_NO_EXEC = 0x02, /* do not store executable script */ - RDSVC_NO_CTTY = 0x04, /* do not store the controlling tty */ - RDSVC_NO_DEPS = 0x08, /* do not store dependencies */ - RDSVC_NO_DESC = 0x10, /* do not store description */ -}; - enum { /* truncate stdout */ SVC_FLAG_TRUNCATE_OUT = 0x01, @@ -87,7 +79,7 @@ typedef struct { /* Read a service from a file. */ -service_t *rdsvc(int dirfd, const char *filename, int flags); +service_t *rdsvc(int dirfd, const char *filename); void delsvc(service_t *svc); @@ -98,7 +90,7 @@ void delsvc(service_t *svc); Returns 0 on success, -1 on failure. The function takes care of printing error messages on failure. */ -int svcscan(const char *directory, service_list_t *list, int flags); +int svcscan(const char *directory, service_list_t *list); void del_svc_list(service_list_t *list); diff --git a/lib/init/rdsvc.c b/lib/init/rdsvc.c index 40e73bc..7d70232 100644 --- a/lib/init/rdsvc.c +++ b/lib/init/rdsvc.c @@ -46,9 +46,7 @@ static int try_pack_argv(char *str, rdline_t *rd) static int svc_desc(void *user, char *arg, rdline_t *rd, int flags) { service_t *svc = user; - - if (flags & RDSVC_NO_DESC) - return 0; + (void)flags; if (try_unescape(arg, rd)) return -1; @@ -59,9 +57,7 @@ static int svc_desc(void *user, char *arg, rdline_t *rd, int flags) static int svc_tty(void *user, char *arg, rdline_t *rd, int flags) { service_t *svc = user; - - if (flags & RDSVC_NO_CTTY) - return 0; + (void)flags; if (strncmp(arg, "truncate", 8) == 0 && isspace(arg[8])) { svc->flags |= SVC_FLAG_TRUNCATE_OUT; @@ -81,12 +77,10 @@ static int svc_exec(void *user, char *arg, rdline_t *rd, int flags) { service_t *svc = user; exec_t *e, *end; + (void)flags; svc->flags |= SVC_FLAG_HAS_EXEC; - if (flags & RDSVC_NO_EXEC) - return 0; - e = calloc(1, sizeof(*e) + strlen(arg) + 1); if (e == NULL) { fprintf(stderr, "%s: %zu: out of memory\n", @@ -113,9 +107,7 @@ static int svc_exec(void *user, char *arg, rdline_t *rd, int flags) static int svc_before(void *user, char *arg, rdline_t *rd, int flags) { service_t *svc = user; - - if (flags & RDSVC_NO_DEPS) - return 0; + (void)flags; if (svc->before != NULL) { fprintf(stderr, "%s: %zu: 'before' dependencies respecified\n", @@ -134,9 +126,7 @@ static int svc_before(void *user, char *arg, rdline_t *rd, int flags) static int svc_after(void *user, char *arg, rdline_t *rd, int flags) { service_t *svc = user; - - if (flags & RDSVC_NO_DEPS) - return 0; + (void)flags; if (svc->after != NULL) { fprintf(stderr, "%s: %zu: 'after' dependencies respecified\n", @@ -231,7 +221,7 @@ static const cfg_param_t svc_params[] = { { "after", 0, svc_after }, }; -service_t *rdsvc(int dirfd, const char *filename, int flags) +service_t *rdsvc(int dirfd, const char *filename) { const char *arg, *args[1]; service_t *svc = NULL; @@ -255,17 +245,15 @@ service_t *rdsvc(int dirfd, const char *filename, int flags) if (svc == NULL) goto fail_oom; - if (!(flags & RDSVC_NO_FNAME)) { - svc->fname = strdup(filename); - if (svc->fname == NULL) - goto fail_oom; - } + svc->fname = strdup(filename); + if (svc->fname == NULL) + goto fail_oom; memcpy(svc->name, filename, nlen); svc->id = -1; if (rdcfg(svc, &rd, svc_params, - sizeof(svc_params) / sizeof(svc_params[0]), flags)) { + sizeof(svc_params) / sizeof(svc_params[0]), 0)) { goto fail; } diff --git a/lib/init/svcscan.c b/lib/init/svcscan.c index 840d819..9fdf0bb 100644 --- a/lib/init/svcscan.c +++ b/lib/init/svcscan.c @@ -11,7 +11,7 @@ #include "service.h" -int svcscan(const char *directory, service_list_t *list, int flags) +int svcscan(const char *directory, service_list_t *list) { int i, dfd, type, ret = 0; struct dirent *ent; @@ -66,7 +66,7 @@ int svcscan(const char *directory, service_list_t *list, int flags) if (type != S_IFREG && type != S_IFLNK) continue; - svc = rdsvc(dfd, ent->d_name, flags); + svc = rdsvc(dfd, ent->d_name); if (svc == NULL) { ret = -1; continue;