BUG/MINOR: acl: correctly consider boolean fetches when doing casts

Commit 5adeda1 (acl: add option -m to change the pattern matching method)
was not completely correct with regards to boolean fetches. It only used
the sample type to determine if the test had to be performed as a boolean
instead of relying on the match function. Due to this, a test such as the
following would not correctly match as the pattern would be ignored :

    acl srv_down srv_is_up(s2) -m int 0

No backport is needed as this was merged first in 1.5-dev18.
This commit is contained in:
Willy Tarreau 2013-06-12 21:50:19 +02:00
parent 595ec54d38
commit 24b2c766f4

View File

@ -1750,7 +1750,7 @@ int acl_exec_cond(struct acl_cond *cond, struct proxy *px, struct session *l4, v
continue;
}
if (smp.type == SMP_T_BOOL) {
if (expr->match == acl_match_nothing) {
if (smp.data.uint)
acl_res |= ACL_PAT_PASS;
else