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:
Joachim Wiberg committed 2022-05-06 07:57:08 +02:00
1 parent 7e37ac348e
commit d3c6351ed8
5 files changed
+16 -38

No files matched your search

+1 -1
View File
@@ -198,7 +198,7 @@ static svc_t *do_find(char *buf, size_t len)
if (!id)
return svc_named_iterator(&iter, 1, input);
return svc_find_by_nameid(input, id);
return svc_find(input, id);
}
static svc_t *do_find_byc(char *buf, size_t len)