]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MEDIUM: h1-htx: apply scheme-based normalization on h1 requests
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Wed, 7 Jul 2021 08:49:27 +0000 (10:49 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Wed, 7 Jul 2021 13:34:01 +0000 (15:34 +0200)
Apply the rfc 3986 scheme-based normalization on h1 requests. It is
executed only for requests which uses absolute-form target URI, which is
not the standard case.

src/h1_htx.c

index 6ff69d0aa668b76d780c0e47e671ef0b7601ec58..70e4b2cb01be7df5ac7a1c95b708f40b53a1ced4 100644 (file)
@@ -16,6 +16,7 @@
 #include <haproxy/h1.h>
 #include <haproxy/h1_htx.h>
 #include <haproxy/http.h>
+#include <haproxy/http_htx.h>
 #include <haproxy/htx.h>
 #include <haproxy/tools.h>
 
@@ -191,6 +192,10 @@ static int h1_postparse_req_hdrs(struct h1m *h1m, union h1_sl *h1sl, struct htx
                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);
+
+               /* absolute-form target URI present, proceed to scheme-based
+                * normalization */
+               http_scheme_based_normalize(htx);
        }
 
        /* If body length cannot be determined, set htx->extra to