mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-01-06 12:20:07 +00:00
BUG/MINOR: http-htx: Don't consider an URI as normalized after a set-uri action
An abosulte URI is marked as normalized if it comes from an H2 client. This way, we know we can send a relative URI to an H1 server. But, after a set-uri action, the URI must no longer be considered as normalized. Otherwise there is no way to send an absolute URI on the server side. If it is important to update a normalized absolute URI without altering this property, the host, path and/or query-string must be set separatly. This patch should fix the issue #1938. It should be backported as far as 2.4.
This commit is contained in:
parent
1c52121e6d
commit
84cdbe478a
@ -7366,9 +7366,11 @@ http-request set-uri <fmt> [ { if | unless } <condition> ]
|
||||
|
||||
This rewrites the request URI with the result of the evaluation of format
|
||||
string <fmt>. The scheme, authority, path and query string are all replaced
|
||||
at once. This can be used to rewrite hosts in front of proxies, or to
|
||||
perform complex modifications to the URI such as moving parts between the
|
||||
path and the query string.
|
||||
at once. This can be used to rewrite hosts in front of proxies, or to perform
|
||||
complex modifications to the URI such as moving parts between the path and
|
||||
the query string. If an absolute URI is set, it will be sent as is to
|
||||
HTTP/1.1 servers. If it is not the desired behavior, the host, the path
|
||||
and/or the query string should be set separately.
|
||||
See also "http-request set-path" and "http-request set-query".
|
||||
|
||||
http-request set-var(<var-name>[,<cond> ...]) <expr> [ { if | unless } <condition> ]
|
||||
|
@ -389,6 +389,7 @@ int http_replace_req_uri(struct htx *htx, const struct ist uri)
|
||||
goto fail;
|
||||
|
||||
sl = http_get_stline(htx);
|
||||
sl->flags &= ~HTX_SL_F_NORMALIZED_URI;
|
||||
if (!http_update_host(htx, sl, uri))
|
||||
goto fail;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user