From: Stefan Eissing Date: Mon, 7 Dec 2015 11:45:43 +0000 (+0000) Subject: fixing default port handling in authority composition for upgraded requests X-Git-Tag: 2.5.0-alpha~2561 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f871d0aeedc4de5ada1346ca7ef4b1ae87f3168d;p=thirdparty%2Fapache%2Fhttpd.git fixing default port handling in authority composition for upgraded requests git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1718314 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/modules/http2/h2_request.c b/modules/http2/h2_request.c index bce58593c15..bf2d0c2e3ad 100644 --- a/modules/http2/h2_request.c +++ b/modules/http2/h2_request.c @@ -150,9 +150,13 @@ apr_status_t h2_request_rwrite(h2_request *req, request_rec *r) req->path = apr_uri_unparse(r->pool, &r->parsed_uri, APR_URI_UNP_OMITSITEPART); - if (!ap_strchr_c(req->authority, ':') && r->server) { - req->authority = apr_psprintf(r->pool, "%s:%d", req->authority, - (int)r->server->port); + if (!ap_strchr_c(req->authority, ':') && r->server && r->server->port) { + apr_port_t defport = apr_uri_port_of_scheme(req->scheme); + if (defport != r->server->port) { + /* port info missing and port is not default for scheme: append */ + req->authority = apr_psprintf(r->pool, "%s:%d", req->authority, + (int)r->server->port); + } } AP_DEBUG_ASSERT(req->scheme);