From: Willy Tarreau Date: Sun, 9 Dec 2012 16:04:41 +0000 (+0100) Subject: BUG/MINOR: proto_tcp: bidirectional fetches not supported anymore in track-sc1/2 X-Git-Tag: v1.5-dev15~5 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b54b6ca48362b3980027b9abedd5c0db6a9e9a1f;p=thirdparty%2Fhaproxy.git BUG/MINOR: proto_tcp: bidirectional fetches not supported anymore in track-sc1/2 Sample fetch capabilities indicate when the fetch may be used and not what it requires, so we need to check if a fetch is compatible with the direction we want and not if it works backwards. --- diff --git a/src/proto_tcp.c b/src/proto_tcp.c index 4c4f5a78a4..5edeeee26d 100644 --- a/src/proto_tcp.c +++ b/src/proto_tcp.c @@ -1309,9 +1309,9 @@ static int tcp_parse_tcp_req(char **args, int section_type, struct proxy *curpx, } if ((rule->action == TCP_ACT_TRK_SC1 || rule->action == TCP_ACT_TRK_SC2) && - (rule->act_prm.trk_ctr.expr->fetch->cap & SMP_CAP_RES)) { + !(rule->act_prm.trk_ctr.expr->fetch->cap & SMP_CAP_REQ)) { memprintf(err, - "fetch '%s' involves some response-only criteria which will be ignored in '%s %s'", + "fetch '%s' cannot be used on requests and will be ignored in '%s %s'", rule->act_prm.trk_ctr.expr->fetch->kw, args[0], args[1]); warn++; } @@ -1352,9 +1352,9 @@ static int tcp_parse_tcp_req(char **args, int section_type, struct proxy *curpx, } if ((rule->action == TCP_ACT_TRK_SC1 || rule->action == TCP_ACT_TRK_SC2) && - (rule->act_prm.trk_ctr.expr->fetch->cap & SMP_CAP_RES)) { + !(rule->act_prm.trk_ctr.expr->fetch->cap & SMP_CAP_REQ)) { memprintf(err, - "fetch '%s' involves some response-only criteria which will be ignored in '%s %s'", + "fetch '%s' cannot be used on requests and will be ignored in '%s %s'", rule->act_prm.trk_ctr.expr->fetch->kw, args[0], args[1]); warn++; }