mirror of
https://github.com/troglobit/finit.git
synced 2026-10-29 12:40:44 +00:00
Fix nasty service matcher bug
In some conditions, typically when the same command is used for multiple services, e.g. the modules-load plugin, the svc_find() function returned an existing "similar" entry instead of NULL, causing loss of config. When creating, and searching for, a run/task/service we must follow the new name:id paradigm to the letter. Always create based on name:id and always search for matching name:id. The name may be derived from the command, but they cannot be used interchangably. Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This commit is contained in:
1 parent
7e37ac348e
commit
d3c6351ed8
5 files changed
+16
-38
No files matched your search
@@ -193,14 +193,13 @@ typedef struct svc {
|
||||
struct timespec gc;
|
||||
} svc_t;
|
||||
|
||||
svc_t *svc_new (char *cmd, char *id, int type);
|
||||
svc_t *svc_new (char *cmd, char *name, char *id, int type);
|
||||
int svc_del (svc_t *svc);
|
||||
void svc_validate (svc_t *svc);
|
||||
|
||||
svc_t *svc_find (char *cmd, char *id);
|
||||
svc_t *svc_find (char *name, char *id);
|
||||
svc_t *svc_find_by_pid (pid_t pid);
|
||||
svc_t *svc_find_by_jobid (int job, char *id);
|
||||
svc_t *svc_find_by_nameid (char *name, char *id);
|
||||
svc_t *svc_find_by_tty (char *dev);
|
||||
svc_t *svc_find_by_pidfile (char *fn);
|
||||
|
||||
|
||||
Reference in new issue
Block a user