From fe451fb9ef2c1f332bf507076b43363b92df4e41 Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Tue, 8 Oct 2019 15:01:34 +0200 Subject: [PATCH] MINOR: h1-htx: Set the flag HTX_SL_F_HAS_AUTHORITY during the request parsing When an h1 request is received and parsed, this flag is set if it is a CONNECT request or if an absolute URI is detected. --- src/h1_htx.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/h1_htx.c b/src/h1_htx.c index 1252f8a13d..9ecabf0439 100644 --- a/src/h1_htx.c +++ b/src/h1_htx.c @@ -193,10 +193,12 @@ static int h1_postparse_req_hdrs(struct h1m *h1m, union h1_sl *h1sl, struct htx goto error; sl->info.req.meth = h1sl->rq.meth; - /* Check if the uri contains an explicit scheme and if it is - * "http" or "https". */ - if (uri.len && uri.ptr[0] != '/') { - sl->flags |= HTX_SL_F_HAS_SCHM; + /* Check if the uri contains an authority. Also check if it contains an + * explicit scheme and if it is "http" or "https". */ + if (h1sl->rq.meth == HTTP_METH_CONNECT) + sl->flags |= HTX_SL_F_HAS_AUTHORITY; + else if (uri.len && uri.ptr[0] != '/' && uri.ptr[0] != '*') { + sl->flags |= (HTX_SL_F_HAS_AUTHORITY|HTX_SL_F_HAS_SCHM); if (uri.len > 4 && (uri.ptr[0] | 0x20) == 'h') sl->flags |= ((uri.ptr[4] == ':') ? HTX_SL_F_SCHM_HTTP : HTX_SL_F_SCHM_HTTPS); } -- 2.39.5