]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
[MEDIUM] acl: make use of get_std_op() to parse intger ranges
authorWilly Tarreau <w@1wt.eu>
Sun, 18 Jul 2010 08:46:33 +0000 (10:46 +0200)
committerWilly Tarreau <w@1wt.eu>
Tue, 10 Aug 2010 12:03:40 +0000 (14:03 +0200)
Using the common operator parser for the ACLs saves about 1.5 kB of code.

src/acl.c

index 4579e4c186b6ebd24e757dba2eee1b70949e6c06..927f7d0c430b7e4057e004229860f71079945b24 100644 (file)
--- a/src/acl.c
+++ b/src/acl.c
@@ -694,13 +694,15 @@ int acl_parse_int(const char **text, struct acl_pattern *pattern, int *opaque)
 
 
        while (!isdigit((unsigned char)*ptr)) {
-               if      (strcmp(ptr, "eq") == 0) *opaque = 0;
-               else if (strcmp(ptr, "gt") == 0) *opaque = 1;
-               else if (strcmp(ptr, "ge") == 0) *opaque = 2;
-               else if (strcmp(ptr, "lt") == 0) *opaque = 3;
-               else if (strcmp(ptr, "le") == 0) *opaque = 4;
-               else
+               switch (get_std_op(ptr)) {
+               case STD_OP_EQ: *opaque = 0; break;
+               case STD_OP_GT: *opaque = 1; break;
+               case STD_OP_GE: *opaque = 2; break;
+               case STD_OP_LT: *opaque = 3; break;
+               case STD_OP_LE: *opaque = 4; break;
+               default:
                        return 0;
+               }
 
                skip++;
                ptr = text[skip];
@@ -780,13 +782,15 @@ int acl_parse_dotted_ver(const char **text, struct acl_pattern *pattern, int *op
 
 
        while (!isdigit((unsigned char)*ptr)) {
-               if      (strcmp(ptr, "eq") == 0) *opaque = 0;
-               else if (strcmp(ptr, "gt") == 0) *opaque = 1;
-               else if (strcmp(ptr, "ge") == 0) *opaque = 2;
-               else if (strcmp(ptr, "lt") == 0) *opaque = 3;
-               else if (strcmp(ptr, "le") == 0) *opaque = 4;
-               else
+               switch (get_std_op(ptr)) {
+               case STD_OP_EQ: *opaque = 0; break;
+               case STD_OP_GT: *opaque = 1; break;
+               case STD_OP_GE: *opaque = 2; break;
+               case STD_OP_LT: *opaque = 3; break;
+               case STD_OP_LE: *opaque = 4; break;
+               default:
                        return 0;
+               }
 
                skip++;
                ptr = text[skip];