summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Fietkau2024-12-22 18:19:25 +0000
committerFelix Fietkau2024-12-22 18:20:12 +0000
commit3225004036159d6645be30258f6dccf9bedf81ac (patch)
treeacf1ce3a9cedcedad0b45f8d60c9dbb3ae9826d6
parenta0a2d80f3459425182a9f0e665d8ca8eff97c82f (diff)
downloadunetd-3225004036159d6645be30258f6dccf9bedf81ac.tar.gz
service: add default group @ to match all nodes
Simplifies handling services that should be enabled globally Signed-off-by: Felix Fietkau <nbd@nbd.name>
-rw-r--r--service.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/service.c b/service.c
index 73cf5b8..5237915 100644
--- a/service.c
+++ b/service.c
@@ -54,6 +54,7 @@ __service_parse_members(struct network *net, struct network_service *s,
{
struct network_group *group;
struct network_host *host;
+ unsigned int count = 0;
if (name[0] != '@') {
host = avl_find_element(&net->hosts, name, host, node);
@@ -68,6 +69,15 @@ __service_parse_members(struct network *net, struct network_service *s,
}
name++;
+ if (!name[0]) {
+ avl_for_each_element(&net->hosts, host, node) {
+ if (s)
+ __service_add_member(s->members, &s->n_members, host);
+ count++;
+ }
+ return count;
+ }
+
group = avl_find_element(&net->groups, name, group, node);
if (!group)
return 0;