diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/include/service.h | 2 | ||||
-rw-r--r-- | lib/src/delsvc.c | 1 | ||||
-rw-r--r-- | lib/src/rdsvc.c | 4 |
3 files changed, 7 insertions, 0 deletions
diff --git a/lib/include/service.h b/lib/include/service.h index 595c60e..c68ff90 100644 --- a/lib/include/service.h +++ b/lib/include/service.h @@ -53,6 +53,8 @@ typedef struct exec_t { typedef struct service_t { struct service_t *next; + char *fname; /* source file name */ + int type; /* SVC_* service type */ int target; /* TGT_* service target */ char *desc; /* description string */ diff --git a/lib/src/delsvc.c b/lib/src/delsvc.c index fd10cfe..9ab51f1 100644 --- a/lib/src/delsvc.c +++ b/lib/src/delsvc.c @@ -35,6 +35,7 @@ void delsvc(service_t *svc) free(svc->before); free(svc->after); + free(svc->fname); free(svc->desc); free(svc->exec); free(svc->ctty); diff --git a/lib/src/rdsvc.c b/lib/src/rdsvc.c index 1f859b7..ef3465f 100644 --- a/lib/src/rdsvc.c +++ b/lib/src/rdsvc.c @@ -289,6 +289,10 @@ service_t *rdsvc(int dirfd, const char *filename) if (svc == NULL) goto fail_oom; + svc->fname = strdup(filename); + if (svc->fname == NULL) + goto fail_oom; + memcpy(svc->name, filename, nlen); while ((ret = rdline(&rd)) == 0) { |