options: allow '*' as value for protocols and families
authorJo-Philipp Wich <jow@openwrt.org>
Fri, 19 Sep 2014 18:09:19 +0000 (20:09 +0200)
committerJo-Philipp Wich <jow@openwrt.org>
Fri, 19 Sep 2014 18:09:40 +0000 (20:09 +0200)
No functional change, just a little bit of consistency with src / dest
specifiers where '*' means 'any' or 'all'. To follow the principle of
least surprise, allow the some for family and protocol options.

  option proto '*' is equivalent to option proto 'all'
  option family '*' is equivalent to option family 'any'

Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
options.c

index 0a796a4fe2920d049779cb35b62c416d2e5de9e2..f41153c693f35e509a3c531e2a7afa437ae67ddf 100644 (file)
--- a/options.c
+++ b/options.c
@@ -442,7 +442,7 @@ fw3_parse_port(void *ptr, const char *val, bool is_list)
 bool
 fw3_parse_family(void *ptr, const char *val, bool is_list)
 {
-       if (!strcmp(val, "any"))
+       if (!strcmp(val, "any") || !strcmp(val, "*"))
                *((enum fw3_family *)ptr) = FW3_FAMILY_ANY;
        else if (!strcmp(val, "inet") || strrchr(val, '4'))
                *((enum fw3_family *)ptr) = FW3_FAMILY_V4;
@@ -543,7 +543,7 @@ fw3_parse_protocol(void *ptr, const char *val, bool is_list)
                while (isspace(*++val));
        }
 
-       if (!strcmp(val, "all"))
+       if (!strcmp(val, "all") || !strcmp(val, "any") || !strcmp(val, "*"))
        {
                proto.any = true;
                put_value(ptr, &proto, sizeof(proto), is_list);