diff --git a/doc/configuration.txt b/doc/configuration.txt index 9ab84abec..8b2b9a6f7 100644 --- a/doc/configuration.txt +++ b/doc/configuration.txt @@ -5811,10 +5811,19 @@ http-after-response [ { if | unless } ] - add-header - allow - capture id + - del-acl() - del-header [ -m ] + - del-map() - replace-header - replace-value + - sc-inc-gpc(,) + - sc-inc-gpc0() + - sc-inc-gpc1() + - sc-set-gpt(,) { | } + - sc-set-gpt0() { | } - set-header + - set-log-level + - set-map() - set-status [reason ] - set-var([, ...]) - set-var-fmt([, ...]) @@ -5859,11 +5868,21 @@ http-after-response capture id [ { if | unless } ] converts it to a string. Please refer to "http-response capture" for a complete description. +http-after-response del-acl() [ { if | unless } ] + + This is used to delete an entry from an ACL. Please refer to "http-request + del-acl" for a complete description. + http-after-response del-header [ -m ] [ { if | unless } ] This removes all HTTP header fields whose name is specified in . Please refer to "http-request del-header" for a complete description. +http-after-response del-map() [ { if | unless } ] + + This is used to delete an entry from a MAP. Please refer to "http-request + del-map" for a complete description. + http-after-response replace-header [ { if | unless } ] @@ -5894,6 +5913,34 @@ http-after-response replace-value # outputs: Cache-Control: max-age=3600, private +http-after-response sc-inc-gpc(,) [ { if | unless } ] +http-after-response sc-inc-gpc0() [ { if | unless } ] +http-after-response sc-inc-gpc1() [ { if | unless } ] + + These actions increment the General Purppose Counters according to the sticky + counter designated by . Please refer to "http-request sc-inc-gpc", + "http-request sc-inc-gpc0" and "http-request sc-inc-gpc1" for a complete + description. + +http-after-response sc-set-gpt(,) { | } + [ { if | unless } ] +http-after-response sc-set-gpt0() { | } + [ { if | unless } ] + + These actions set the 32-bit unsigned General Purpose Tags according to the + sticky counter designated by . Please refer to "http-request + sc-inc-gpt" and "http-request sc-inc-gpt0" for a complete description. + +http-after-response set-log-level [ { if | unless } ] + + This is used to change the log level of the current response. Please refer to + "http-request set-log-level" for a complete description. + +http-after-response set-map() + + This is used to add a new entry into a MAP. Please refer to "http-request + set-map" for a complete description. + http-after-response set-header [ { if | unless } ] This does the same as "http-after-response add-header" except that the header diff --git a/src/http_act.c b/src/http_act.c index d4da43983..5582085d4 100644 --- a/src/http_act.c +++ b/src/http_act.c @@ -2476,10 +2476,13 @@ static struct action_kw_list http_after_res_actions = { { "add-header", parse_http_set_header, 0 }, { "allow", parse_http_allow, 0 }, { "capture", parse_http_res_capture, 0 }, + { "del-acl", parse_http_set_map, KWF_MATCH_PREFIX }, { "del-header", parse_http_del_header, 0 }, + { "del-map", parse_http_set_map, KWF_MATCH_PREFIX }, { "replace-header", parse_http_replace_header, 0 }, { "replace-value", parse_http_replace_header, 0 }, { "set-header", parse_http_set_header, 0 }, + { "set-map", parse_http_set_map, KWF_MATCH_PREFIX }, { "set-status", parse_http_set_status, 0 }, { "strict-mode", parse_http_strict_mode, 0 }, { NULL, NULL } diff --git a/src/stick_table.c b/src/stick_table.c index 507bd094a..3533ec09e 100644 --- a/src/stick_table.c +++ b/src/stick_table.c @@ -5077,6 +5077,17 @@ static struct action_kw_list http_res_kws = { { }, { INITCALL1(STG_REGISTER, http_res_keywords_register, &http_res_kws); +static struct action_kw_list http_after_res_kws = { { }, { + { "sc-inc-gpc", parse_inc_gpc, KWF_MATCH_PREFIX }, + { "sc-inc-gpc0", parse_inc_gpc, KWF_MATCH_PREFIX }, + { "sc-inc-gpc1", parse_inc_gpc, KWF_MATCH_PREFIX }, + { "sc-set-gpt", parse_set_gpt, KWF_MATCH_PREFIX }, + { "sc-set-gpt0", parse_set_gpt, KWF_MATCH_PREFIX }, + { /* END */ } +}}; + +INITCALL1(STG_REGISTER, http_after_res_keywords_register, &http_after_res_kws); + /* Note: must not be declared as its list will be overwritten. * Please take care of keeping this list alphabetically sorted. */ diff --git a/src/stream.c b/src/stream.c index 9906b2141..006c22964 100644 --- a/src/stream.c +++ b/src/stream.c @@ -3942,6 +3942,13 @@ static struct action_kw_list stream_http_res_keywords = { ILH, { INITCALL1(STG_REGISTER, http_res_keywords_register, &stream_http_res_keywords); +static struct action_kw_list stream_http_after_res_actions = { ILH, { + { "set-log-level", stream_parse_set_log_level }, + { /* END */ } +}}; + +INITCALL1(STG_REGISTER, http_after_res_keywords_register, &stream_http_after_res_actions); + static int smp_fetch_cur_server_timeout(const struct arg *args, struct sample *smp, const char *km, void *private) { smp->flags = SMP_F_VOL_TXN;