]> git.ipfire.org Git - thirdparty/haproxy.git/commit
BUG/MEDIUM: mux-h2: always set :authority on request output
authorWilly Tarreau <w@1wt.eu>
Fri, 1 Feb 2019 15:13:59 +0000 (16:13 +0100)
committerWilly Tarreau <w@1wt.eu>
Fri, 1 Feb 2019 15:47:46 +0000 (16:47 +0100)
commit053c15750bc7207979e8ef8317c1aa125bfe9ea2
tree1871591fb04e3caa506936d45cd67b68e1be85c0
parent5be92ff23f7494902091b1bf76d7787ec3fbf706
BUG/MEDIUM: mux-h2: always set :authority on request output

PiBa-NL reported that some servers don't fall back to the Host header when
:authority is absent. After studying all the combinations of Host and
:authority, it appears that we always have to send the latter, hence we
never need the former. In case of CONNECT method, the authority is retrieved
from the URI part, otherwise it's extracted from the Host field.

The tricky part is that we have to scan all headers for the Host header
before dumping other headers. This is due to the fact that we must emit
pseudo headers before other ones. One improvement could possibly be made
later in the request parser to search and emit the Host header immediately
if authority was not found. This would cost nothing on the vast marjority
of requests and make the lookup faster on output since Host would appear
first.

This fix must be backported to 1.9.
src/mux_h2.c