redirect - X X X
redisp (deprecated) X - X X
redispatch (deprecated) X - X X
-reqadd - X X X
-reqallow - X X X
-reqdel - X X X
-reqdeny - X X X
-reqiallow - X X X
-reqidel - X X X
-reqideny - X X X
-reqipass - X X X
-reqirep - X X X
-reqitarpit - X X X
-reqpass - X X X
-reqrep - X X X
+reqadd (deprecated) - X X X
+reqallow (deprecated) - X X X
+reqdel (deprecated) - X X X
+reqdeny (deprecated) - X X X
+reqiallow (deprecated) - X X X
+reqidel (deprecated) - X X X
+reqideny (deprecated) - X X X
+reqipass (deprecated) - X X X
+reqirep (deprecated) - X X X
+reqitarpit (deprecated) - X X X
+reqpass (deprecated) - X X X
+reqrep (deprecated) - X X X
-- keyword -------------------------- defaults - frontend - listen -- backend -
-reqtarpit - X X X
+reqtarpit (deprecated) - X X X
retries X - X X
retry-on X - X X
-rspadd - X X X
-rspdel - X X X
-rspdeny - X X X
-rspidel - X X X
-rspideny - X X X
-rspirep - X X X
-rsprep - X X X
+rspadd (deprecated) - X X X
+rspdel (deprecated) - X X X
+rspdeny (deprecated) - X X X
+rspidel (deprecated) - X X X
+rspideny (deprecated) - X X X
+rspirep (deprecated) - X X X
+rsprep (deprecated) - X X X
server - - X X
server-state-file-name X - X X
server-template - - X X
See also : "option redispatch"
-reqadd <string> [{if | unless} <cond>]
+reqadd <string> [{if | unless} <cond>] (deprecated)
Add a header at the end of the HTTP request
May be used in sections : defaults | frontend | listen | backend
no | yes | yes | yes
and section 7 about ACLs.
-reqallow <search> [{if | unless} <cond>]
-reqiallow <search> [{if | unless} <cond>] (ignore case)
+reqallow <search> [{if | unless} <cond>] (deprecated)
+reqiallow <search> [{if | unless} <cond>] (ignore case) (deprecated)
Definitely allow an HTTP request if a line matches a regular expression
May be used in sections : defaults | frontend | listen | backend
no | yes | yes | yes
manipulation, and section 7 about ACLs.
-reqdel <search> [{if | unless} <cond>]
-reqidel <search> [{if | unless} <cond>] (ignore case)
+reqdel <search> [{if | unless} <cond>] (deprecated)
+reqidel <search> [{if | unless} <cond>] (ignore case) (deprecated)
Delete all headers matching a regular expression in an HTTP request
May be used in sections : defaults | frontend | listen | backend
no | yes | yes | yes
HTTP header manipulation, and section 7 about ACLs.
-reqdeny <search> [{if | unless} <cond>]
-reqideny <search> [{if | unless} <cond>] (ignore case)
+reqdeny <search> [{if | unless} <cond>] (deprecated)
+reqideny <search> [{if | unless} <cond>] (ignore case) (deprecated)
Deny an HTTP request if a line matches a regular expression
May be used in sections : defaults | frontend | listen | backend
no | yes | yes | yes
HTTP header manipulation, and section 7 about ACLs.
-reqpass <search> [{if | unless} <cond>]
-reqipass <search> [{if | unless} <cond>] (ignore case)
+reqpass <search> [{if | unless} <cond>] (deprecated)
+reqipass <search> [{if | unless} <cond>] (ignore case) (deprecated)
Ignore any HTTP request line matching a regular expression in next rules
May be used in sections : defaults | frontend | listen | backend
no | yes | yes | yes
HTTP header manipulation, and section 7 about ACLs.
-reqrep <search> <string> [{if | unless} <cond>]
-reqirep <search> <string> [{if | unless} <cond>] (ignore case)
+reqrep <search> <string> [{if | unless} <cond>] (deprecated)
+reqirep <search> <string> [{if | unless} <cond>] (ignore case) (deprecated)
Replace a regular expression with a string in an HTTP request line
May be used in sections : defaults | frontend | listen | backend
no | yes | yes | yes
section 6 about HTTP header manipulation, and section 7 about ACLs.
-reqtarpit <search> [{if | unless} <cond>]
-reqitarpit <search> [{if | unless} <cond>] (ignore case)
+reqtarpit <search> [{if | unless} <cond>] (deprecated)
+reqitarpit <search> [{if | unless} <cond>] (ignore case) (deprecated)
Tarpit an HTTP request containing a line matching a regular expression
May be used in sections : defaults | frontend | listen | backend
no | yes | yes | yes
See also: "retries", "option redispatch", "tune.bufsize"
-rspadd <string> [{if | unless} <cond>]
+rspadd <string> [{if | unless} <cond>] (deprecated)
Add a header at the end of the HTTP response
May be used in sections : defaults | frontend | listen | backend
no | yes | yes | yes
manipulation, and section 7 about ACLs.
-rspdel <search> [{if | unless} <cond>]
-rspidel <search> [{if | unless} <cond>] (ignore case)
+rspdel <search> [{if | unless} <cond>] (deprecated)
+rspidel <search> [{if | unless} <cond>] (ignore case) (deprecated)
Delete all headers matching a regular expression in an HTTP response
May be used in sections : defaults | frontend | listen | backend
no | yes | yes | yes
HTTP header manipulation, and section 7 about ACLs.
-rspdeny <search> [{if | unless} <cond>]
-rspideny <search> [{if | unless} <cond>] (ignore case)
+rspdeny <search> [{if | unless} <cond>] (deprecated)
+rspideny <search> [{if | unless} <cond>] (ignore case) (deprecated)
Block an HTTP response if a line matches a regular expression
May be used in sections : defaults | frontend | listen | backend
no | yes | yes | yes
HTTP header manipulation and section 7 about ACLs.
-rsprep <search> <string> [{if | unless} <cond>]
-rspirep <search> <string> [{if | unless} <cond>] (ignore case)
+rsprep <search> <string> [{if | unless} <cond>] (deprecated)
+rspirep <search> <string> [{if | unless} <cond>] (ignore case) (deprecated)
Replace a regular expression with a string in an HTTP response line
May be used in sections : defaults | frontend | listen | backend
no | yes | yes | yes
goto out;
}
else if (!strcmp(args[0], "cliexp") || !strcmp(args[0], "reqrep")) { /* replace request header from a regex */
+ if (!already_warned(WARN_REQREP_DEPRECATED))
+ ha_warning("parsing [%s:%d] : The '%s' directive is deprecated in favor of 'http-request replace-header' and will be removed in next version.\n", file, linenum, args[0]);
+
if (*(args[2]) == 0) {
ha_alert("parsing [%s:%d] : '%s' expects <search> and <replace> as arguments.\n",
file, linenum, args[0]);
goto out;
}
else if (!strcmp(args[0], "reqdel")) { /* delete request header from a regex */
+ if (!already_warned(WARN_REQDEL_DEPRECATED))
+ ha_warning("parsing [%s:%d] : The '%s' directive is deprecated in favor of 'http-request del-header' and will be removed in next version.\n", file, linenum, args[0]);
+
err_code |= create_cond_regex_rule(file, linenum, curproxy,
SMP_OPT_DIR_REQ, ACT_REMOVE, 0,
args[0], args[1], NULL, (const char **)args+2);
goto out;
}
else if (!strcmp(args[0], "reqdeny")) { /* deny a request if a header matches this regex */
+ if (!already_warned(WARN_REQDENY_DEPRECATED))
+ ha_warning("parsing [%s:%d] : The '%s' directive is deprecated in favor of 'http-request deny' and will be removed in next version.\n", file, linenum, args[0]);
+
err_code |= create_cond_regex_rule(file, linenum, curproxy,
SMP_OPT_DIR_REQ, ACT_DENY, 0,
args[0], args[1], NULL, (const char **)args+2);
goto out;
}
else if (!strcmp(args[0], "reqpass")) { /* pass this header without allowing or denying the request */
+ if (!already_warned(WARN_REQPASS_DEPRECATED))
+ ha_warning("parsing [%s:%d] : The '%s' directive is deprecated and will be removed in next version.\n", file, linenum, args[0]);
+
err_code |= create_cond_regex_rule(file, linenum, curproxy,
SMP_OPT_DIR_REQ, ACT_PASS, 0,
args[0], args[1], NULL, (const char **)args+2);
goto out;
}
else if (!strcmp(args[0], "reqallow")) { /* allow a request if a header matches this regex */
+ if (!already_warned(WARN_REQALLOW_DEPRECATED))
+ ha_warning("parsing [%s:%d] : The '%s' directive is deprecated in favor of 'http-request allow' and will be removed in next version.\n", file, linenum, args[0]);
+
err_code |= create_cond_regex_rule(file, linenum, curproxy,
SMP_OPT_DIR_REQ, ACT_ALLOW, 0,
args[0], args[1], NULL, (const char **)args+2);
goto out;
}
else if (!strcmp(args[0], "reqtarpit")) { /* tarpit a request if a header matches this regex */
+ if (!already_warned(WARN_REQTARPIT_DEPRECATED))
+ ha_warning("parsing [%s:%d] : The '%s' directive is deprecated in favor of 'http-request tarpit' and will be removed in next version.\n", file, linenum, args[0]);
+
err_code |= create_cond_regex_rule(file, linenum, curproxy,
SMP_OPT_DIR_REQ, ACT_TARPIT, 0,
args[0], args[1], NULL, (const char **)args+2);
goto out;
}
else if (!strcmp(args[0], "reqirep")) { /* replace request header from a regex, ignoring case */
+ if (!already_warned(WARN_REQREP_DEPRECATED))
+ ha_warning("parsing [%s:%d] : The '%s' directive is deprecated in favor of 'http-request replace-header' and will be removed in next version.\n", file, linenum, args[0]);
+
if (*(args[2]) == 0) {
ha_alert("parsing [%s:%d] : '%s' expects <search> and <replace> as arguments.\n",
file, linenum, args[0]);
goto out;
}
else if (!strcmp(args[0], "reqidel")) { /* delete request header from a regex ignoring case */
+ if (!already_warned(WARN_REQDEL_DEPRECATED))
+ ha_warning("parsing [%s:%d] : The '%s' directive is deprecated in favor of 'http-request del-header' and will be removed in next version.\n", file, linenum, args[0]);
+
err_code |= create_cond_regex_rule(file, linenum, curproxy,
SMP_OPT_DIR_REQ, ACT_REMOVE, REG_ICASE,
args[0], args[1], NULL, (const char **)args+2);
goto out;
}
else if (!strcmp(args[0], "reqideny")) { /* deny a request if a header matches this regex ignoring case */
+ if (!already_warned(WARN_REQDENY_DEPRECATED))
+ ha_warning("parsing [%s:%d] : The '%s' directive is deprecated in favor of 'http-request deny' and will be removed in next version.\n", file, linenum, args[0]);
+
err_code |= create_cond_regex_rule(file, linenum, curproxy,
SMP_OPT_DIR_REQ, ACT_DENY, REG_ICASE,
args[0], args[1], NULL, (const char **)args+2);
goto out;
}
else if (!strcmp(args[0], "reqipass")) { /* pass this header without allowing or denying the request */
+ if (!already_warned(WARN_REQPASS_DEPRECATED))
+ ha_warning("parsing [%s:%d] : The '%s' directive is deprecated and will be removed in next version.\n", file, linenum, args[0]);
+
err_code |= create_cond_regex_rule(file, linenum, curproxy,
SMP_OPT_DIR_REQ, ACT_PASS, REG_ICASE,
args[0], args[1], NULL, (const char **)args+2);
goto out;
}
else if (!strcmp(args[0], "reqiallow")) { /* allow a request if a header matches this regex ignoring case */
+ if (!already_warned(WARN_REQALLOW_DEPRECATED))
+ ha_warning("parsing [%s:%d] : The '%s' directive is deprecated in favor of 'http-request allow' and will be removed in next version.\n", file, linenum, args[0]);
+
err_code |= create_cond_regex_rule(file, linenum, curproxy,
SMP_OPT_DIR_REQ, ACT_ALLOW, REG_ICASE,
args[0], args[1], NULL, (const char **)args+2);
goto out;
}
else if (!strcmp(args[0], "reqitarpit")) { /* tarpit a request if a header matches this regex ignoring case */
+ if (!already_warned(WARN_REQTARPIT_DEPRECATED))
+ ha_warning("parsing [%s:%d] : The '%s' directive is deprecated in favor of 'http-request tarpit' and will be removed in next version.\n", file, linenum, args[0]);
+
err_code |= create_cond_regex_rule(file, linenum, curproxy,
SMP_OPT_DIR_REQ, ACT_TARPIT, REG_ICASE,
args[0], args[1], NULL, (const char **)args+2);
else if (!strcmp(args[0], "reqadd")) { /* add request header */
struct cond_wordlist *wl;
+ if (!already_warned(WARN_REQADD_DEPRECATED))
+ ha_warning("parsing [%s:%d] : The '%s' directive is deprecated in favor of 'http-request add-header' and will be removed in next version.\n", file, linenum, args[0]);
+
if (curproxy == &defproxy) {
ha_alert("parsing [%s:%d] : '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
err_code |= ERR_ALERT | ERR_FATAL;
warnif_misplaced_reqadd(curproxy, file, linenum, args[0]);
}
else if (!strcmp(args[0], "srvexp") || !strcmp(args[0], "rsprep")) { /* replace response header from a regex */
+ if (!already_warned(WARN_RSPREP_DEPRECATED))
+ ha_warning("parsing [%s:%d] : The '%s' directive is deprecated in favor of 'http-response replace-header' and will be removed in next version.\n", file, linenum, args[0]);
+
if (*(args[2]) == 0) {
ha_alert("parsing [%s:%d] : '%s' expects <search> and <replace> as arguments.\n",
file, linenum, args[0]);
goto out;
}
else if (!strcmp(args[0], "rspdel")) { /* delete response header from a regex */
+ if (!already_warned(WARN_RSPDEL_DEPRECATED))
+ ha_warning("parsing [%s:%d] : The '%s' directive is deprecated in favor of 'http-response del-header' and will be removed in next version.\n", file, linenum, args[0]);
+
err_code |= create_cond_regex_rule(file, linenum, curproxy,
SMP_OPT_DIR_RES, ACT_REMOVE, 0,
args[0], args[1], NULL, (const char **)args+2);
goto out;
}
else if (!strcmp(args[0], "rspdeny")) { /* block response header from a regex */
+ if (!already_warned(WARN_RSPDENY_DEPRECATED))
+ ha_warning("parsing [%s:%d] : The '%s' directive is deprecated in favor of 'http-response deny' and will be removed in next version.\n", file, linenum, args[0]);
+
err_code |= create_cond_regex_rule(file, linenum, curproxy,
SMP_OPT_DIR_RES, ACT_DENY, 0,
args[0], args[1], NULL, (const char **)args+2);
goto out;
}
else if (!strcmp(args[0], "rspirep")) { /* replace response header from a regex ignoring case */
+ if (!already_warned(WARN_RSPREP_DEPRECATED))
+ ha_warning("parsing [%s:%d] : The '%s' directive is deprecated in favor of 'http-response replace-header' and will be removed in next version.\n", file, linenum, args[0]);
+
if (*(args[2]) == 0) {
ha_alert("parsing [%s:%d] : '%s' expects <search> and <replace> as arguments.\n",
file, linenum, args[0]);
goto out;
}
else if (!strcmp(args[0], "rspidel")) { /* delete response header from a regex ignoring case */
+ if (!already_warned(WARN_RSPDEL_DEPRECATED))
+ ha_warning("parsing [%s:%d] : The '%s' directive is deprecated in favor of 'http-response del-header' and will be removed in next version.\n", file, linenum, args[0]);
+
err_code |= create_cond_regex_rule(file, linenum, curproxy,
SMP_OPT_DIR_RES, ACT_REMOVE, REG_ICASE,
args[0], args[1], NULL, (const char **)args+2);
goto out;
}
else if (!strcmp(args[0], "rspideny")) { /* block response header from a regex ignoring case */
+ if (!already_warned(WARN_RSPDENY_DEPRECATED))
+ ha_warning("parsing [%s:%d] : The '%s' directive is deprecated in favor of 'http-response deny' and will be removed in next version.\n", file, linenum, args[0]);
+
err_code |= create_cond_regex_rule(file, linenum, curproxy,
SMP_OPT_DIR_RES, ACT_DENY, REG_ICASE,
args[0], args[1], NULL, (const char **)args+2);
else if (!strcmp(args[0], "rspadd")) { /* add response header */
struct cond_wordlist *wl;
+ if (!already_warned(WARN_RSPADD_DEPRECATED))
+ ha_warning("parsing [%s:%d] : The '%s' directive is deprecated in favor of 'http-response add-header' and will be removed in next version.\n", file, linenum, args[0]);
+
if (curproxy == &defproxy) {
ha_alert("parsing [%s:%d] : '%s' not allowed in 'defaults' section.\n", file, linenum, args[0]);
err_code |= ERR_ALERT | ERR_FATAL;