]> granicus.if.org Git - ipset/commitdiff
Support case-insensitive ICMP and ICMPv6 type/code names.
authorJozsef Kadlecsik <kadlec@blackhole.kfki.hu>
Fri, 10 Dec 2010 22:04:59 +0000 (23:04 +0100)
committerJozsef Kadlecsik <kadlec@blackhole.kfki.hu>
Fri, 10 Dec 2010 22:04:59 +0000 (23:04 +0100)
include/libipset/utils.h
lib/icmp.c
lib/icmpv6.c

index 75efdac3e47beb9fcb9bf8b7962baa98c4b5c06f..c22687f3c3bd9cd38b2d134ab73376d416bcecc8 100644 (file)
@@ -13,6 +13,8 @@
 /* String equality tests */
 #define STREQ(a,b)             (strcmp(a,b) == 0)
 #define STRNEQ(a,b,n)          (strncmp(a,b,n) == 0)
+#define STRCASEQ(a,b)          (strcasecmp(a,b) == 0)
+#define STRNCASEQ(a,b,n)       (strncasecmp(a,b,n) == 0)
 
 /* Stringify tokens */
 #define _STR(c)                        #c
index 93276e29ac8a2adbb18ca48ed3eeeea5c5fdfc54..c74927271185146dc5aa5b302a20fc1529bb22da 100644 (file)
@@ -70,7 +70,7 @@ int name_to_icmp(const char *str, uint16_t *typecode)
        unsigned int i;
 
        for (i = 0; i < ARRAY_SIZE(icmp_typecodes); i++)
-               if (STRNEQ(icmp_typecodes[i].name, str, strlen(str))) {
+               if (STRNCASEQ(icmp_typecodes[i].name, str, strlen(str))) {
                        *typecode = (icmp_typecodes[i].type << 8) | icmp_typecodes[i].code;
                        return 0;
                }
index c32a6a4a1950efb685fd195d25fb623ec345323b..5ba93ca55766c46e93ae97b5ce19270d4e4d3b79 100644 (file)
@@ -57,7 +57,7 @@ int name_to_icmpv6(const char *str, uint16_t *typecode)
        unsigned int i;
 
        for (i = 0; i < ARRAY_SIZE(icmpv6_typecodes); i++)
-               if (STRNEQ(icmpv6_typecodes[i].name, str, strlen(str))) {
+               if (STRNCASEQ(icmpv6_typecodes[i].name, str, strlen(str))) {
                        *typecode = (icmpv6_typecodes[i].type << 8) | icmpv6_typecodes[i].code;
                        return 0;
                }