MINOR: http-rules: Add capture action to http-after-response ruleset
authorChristopher Faulet <cfaulet@haproxy.com>
Mon, 6 Dec 2021 07:43:22 +0000 (08:43 +0100)
committerChristopher Faulet <cfaulet@haproxy.com>
Thu, 16 Dec 2021 08:42:55 +0000 (09:42 +0100)
It is now possible to perform captures on the response when
http-after-response rules are evaluated. It may be handy to capture headers
from responses generated by HAProxy.

This patch is trivial, it may be backported if necessary.

(cherry picked from commit ba8f06304e538d763a506526a63285c33d26af47)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>

doc/configuration.txt
src/http_act.c

index 62bf226..0506203 100644 (file)
@@ -5320,6 +5320,7 @@ http-after-response <action> <options...> [ { if | unless } <condition> ]
   supported:
     - add-header <name> <fmt>
     - allow
+    - capture <sample> id <id>
     - del-header <name> [ -m <meth> ]
     - replace-header <name> <regex-match> <replace-fmt>
     - replace-value <name> <regex-match> <replace-fmt>
@@ -5357,6 +5358,12 @@ http-after-response add-header <name> <fmt> [ { if | unless } <condition> ]
   value is defined by <fmt>. Please refer to "http-request add-header" for a
   complete description.
 
+http-after-response capture <sample> id <id> [ { if | unless } <condition> ]
+
+  This captures sample expression <sample> from the response buffer, and
+  converts it to a string. Please refer to "http-response capture" for a
+  complete description.
+
 http-after-response allow [ { if | unless } <condition> ]
 
   This stops the evaluation of the rules and lets the response pass the check.
index 10cf243..fc9306c 100644 (file)
@@ -2478,6 +2478,7 @@ static struct action_kw_list http_after_res_actions = {
        .kw = {
                { "add-header",      parse_http_set_header,     0 },
                { "allow",           parse_http_allow,          0 },
+               { "capture",         parse_http_res_capture,    0 },
                { "del-header",      parse_http_del_header,     0 },
                { "replace-header",  parse_http_replace_header, 0 },
                { "replace-value",   parse_http_replace_header, 0 },