From: Eric Covener Date: Mon, 7 Jul 2025 11:53:43 +0000 (+0000) Subject: tolerate missing host header in h2 proxy X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=349248060f2bff5f4592fda1917f83ba9e70bf3f;p=thirdparty%2Fapache%2Fhttpd.git tolerate missing host header in h2 proxy git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1927036 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/modules/http2/h2_proxy_session.c b/modules/http2/h2_proxy_session.c index d5d0f9bc6b..2cfbb5f5d4 100644 --- a/modules/http2/h2_proxy_session.c +++ b/modules/http2/h2_proxy_session.c @@ -850,6 +850,18 @@ static apr_status_t open_stream(h2_proxy_session *session, const char *url, dconf = ap_get_module_config(r->per_dir_config, &proxy_module); if (dconf->preserve_host) { authority = orig_host; + if (!authority) { + /* Duplicate mod_proxy behaviour if ProxyPreserveHost is + * used but an "HTTP/0.9" request is received without a + * Host: header */ + authority = r->server->server_hostname; + ap_log_rerror(APLOG_MARK, APLOG_WARNING, 0, r, APLOGNO(10511) + "HTTP/0.9 request (with no host line) " + "on incoming request and preserve host set " + "forcing hostname to be %s for uri %s", + authority, r->uri); + apr_table_setn(r->headers_in, "Host", authority); + } } else { authority = puri.hostname;