mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-03-07 03:48:46 +00:00
MINOR: h2: report in the HTX flags when the request has an authority
The other side will need to know when to emit an authority or not. We need to pass this information in the HTX flags.
This commit is contained in:
parent
92919f7fd5
commit
1440fe8b4b
4
src/h2.c
4
src/h2.c
@ -215,6 +215,7 @@ static struct htx_sl *h2_prepare_htx_reqline(uint32_t fields, struct ist *phdr,
|
||||
if (!(flags & HTX_SL_F_HAS_SCHM)) {
|
||||
/* no scheme, use authority only (CONNECT) */
|
||||
uri = phdr[H2_PHDR_IDX_AUTH];
|
||||
flags |= HTX_SL_F_HAS_AUTHORITY;
|
||||
}
|
||||
else if (!(flags & (HTX_SL_F_SCHM_HTTP|HTX_SL_F_SCHM_HTTPS)) && (fields & H2_PHDR_FND_AUTH)) {
|
||||
/* non-http/https scheme + authority, let's use the absolute
|
||||
@ -227,10 +228,13 @@ static struct htx_sl *h2_prepare_htx_reqline(uint32_t fields, struct ist *phdr,
|
||||
istcat(&uri, phdr[H2_PHDR_IDX_AUTH], trash.size);
|
||||
if (!isteq(phdr[H2_PHDR_IDX_PATH], ist("*")))
|
||||
istcat(&uri, phdr[H2_PHDR_IDX_PATH], trash.size);
|
||||
flags |= HTX_SL_F_HAS_AUTHORITY;
|
||||
}
|
||||
else {
|
||||
/* usual schemes with or without authority, use origin form */
|
||||
uri = phdr[H2_PHDR_IDX_PATH];
|
||||
if (fields & H2_PHDR_FND_AUTH)
|
||||
flags |= HTX_SL_F_HAS_AUTHORITY;
|
||||
}
|
||||
|
||||
/* make sure the final URI isn't empty. Note that 7540#8.1.2.3 states
|
||||
|
Loading…
Reference in New Issue
Block a user