]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: http_act: don't check capture id in backend (2)
authorTim Duesterhus <duesterhus@woltlab.com>
Fri, 3 Jul 2020 11:43:42 +0000 (13:43 +0200)
committerWilly Tarreau <w@1wt.eu>
Fri, 3 Jul 2020 16:30:54 +0000 (18:30 +0200)
Please refer to commit 19a69b3740702ce5503a063e9dfbcea5b9187d27 for all the
details. This follow up commit fixes the `http-response capture` case, the
previous one only fixed the `http-request capture` one. The documentation was
already updated and the change to `check_http_res_capture` is identical to
the `check_http_req_capture` change.

This patch must be backported together with 19a69b3740702ce5503a063e9dfbcea5b9187d27.
Most likely this is 1.6+.

src/http_act.c

index 1c7a1d4e6057550760942bf5a9efcbc11875e8b7..2eac1254901c73ecdbeb7cb75ee9cdddf1579ff8 100644 (file)
@@ -723,7 +723,10 @@ static int check_http_res_capture(struct act_rule *rule, struct proxy *px, char
        if (rule->action_ptr != http_action_res_capture_by_id)
                return 1;
 
-       if (rule->arg.capid.idx >= px->nb_rsp_cap) {
+       /* capture slots can only be declared in frontends, so we can't check their
+        * existence in backends at configuration parsing step
+        */
+       if (px->cap & PR_CAP_FE && rule->arg.capid.idx >= px->nb_rsp_cap) {
                memprintf(err, "unable to find capture id '%d' referenced by http-response capture rule",
                          rule->arg.capid.idx);
                return 0;