summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Oberhollenzer <david.oberhollenzer@tele2.at>2018-04-21 22:19:43 +0200
committerDavid Oberhollenzer <david.oberhollenzer@tele2.at>2018-04-22 13:41:18 +0200
commit160cd6b6aaffc12fb8cff0e6a9b8e1e0ba7053d0 (patch)
tree08caea2de35007173a168c65d41ff26fd71b8b0d
parent32113521eb21b36cd26ebde5c15aac09c7212ee6 (diff)
Store original file name in service structure
Signed-off-by: David Oberhollenzer <david.oberhollenzer@tele2.at>
-rw-r--r--lib/include/service.h2
-rw-r--r--lib/src/delsvc.c1
-rw-r--r--lib/src/rdsvc.c4
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) {