BUG/MINOR: http-rules: Replace path and query-string in "replace-path" action
authorChristopher Faulet <cfaulet@haproxy.com>
Mon, 31 Aug 2020 14:27:42 +0000 (16:27 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Tue, 1 Sep 2020 08:55:29 +0000 (10:55 +0200)
commit4b9c0d1fc08388bf44c6ebbd88f786032dd010fc
tree04025eec4fee8723ade992cb6af0fcd7e6a9c7ad
parentb8ce505c6f0b202ccdb8e512fed0888652ed5b12
BUG/MINOR: http-rules: Replace path and query-string in "replace-path" action

The documentation stated the "replace-path" action replaces the path, including
the query-string if any is present. But in the code, only the path is
replaced. The query-string is preserved. So, now, instead of relying on the same
action code than "set-uri" action (1), a new action code (4) is used for
"replace-path" action. In http_req_replace_stline() function, when the action
code is 4, we call http_replace_req_path() setting the last argument (with_qs)
to 1. This way, the query-string is not skipped but included to the path to be
replaced.

This patch relies on the commit b8ce505c6 ("MINOR: http-htx: Add an option to
eval query-string when the path is replaced"). Both must be backported as far as
2.0. It should fix the issue #829.
src/http_act.c
src/http_ana.c