From: Willy Tarreau Date: Sun, 18 Jul 2010 08:46:33 +0000 (+0200) Subject: [MEDIUM] acl: make use of get_std_op() to parse intger ranges X-Git-Tag: v1.5-dev8~537 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1c7cc5bf9554868c05f3fc1b7dc156f06e14908c;p=thirdparty%2Fhaproxy.git [MEDIUM] acl: make use of get_std_op() to parse intger ranges Using the common operator parser for the ACLs saves about 1.5 kB of code. --- diff --git a/src/acl.c b/src/acl.c index 4579e4c186..927f7d0c43 100644 --- 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];