service: add @all as alias for all members, unless defined differently
authorFelix Fietkau <[email protected]>
Sun, 9 Mar 2025 15:39:53 +0000 (16:39 +0100)
committerFelix Fietkau <[email protected]>
Sun, 9 Mar 2025 15:39:53 +0000 (16:39 +0100)
Signed-off-by: Felix Fietkau <[email protected]>
service.c

index 0050c2354164bc1da37b5e605da973d504567228..0f5a8be6194834e26fd2dc56387f120a08bcd5ab 100644 (file)
--- a/service.c
+++ b/service.c
@@ -69,7 +69,11 @@ __service_parse_members(struct network *net, struct network_service *s,
        }
 
        name++;
-       if (!name[0]) {
+       group = avl_find_element(&net->groups, name, group, node);
+       if (!group) {
+               if (name[0] && strcmp(name, "all") != 0)
+                       return 0;
+
                avl_for_each_element(&net->hosts, host, node) {
                        if (s)
                                __service_add_member(s->members, &s->n_members, host);
@@ -78,10 +82,6 @@ __service_parse_members(struct network *net, struct network_service *s,
                return count;
        }
 
-       group = avl_find_element(&net->groups, name, group, node);
-       if (!group)
-               return 0;
-
        if (s)
                return __service_add_group(s->members, &s->n_members, group);
        else