From: Jim Jagielski Date: Wed, 7 May 2014 12:53:37 +0000 (+0000) Subject: Merge r1592529 from trunk: X-Git-Tag: 2.4.10~252 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=206b598c435b7960f43da62d4991d1b447730281;p=apache Merge r1592529 from trunk: mod_proxy_scgi: Support Unix sockets. ap_proxy_port_of_scheme(): Support default SCGI port (4000). Submitted by: trawick Reviewed/backported by: jim git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1593004 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index 180b4d09d0..2a121b1f5b 100644 --- a/CHANGES +++ b/CHANGES @@ -2,6 +2,9 @@ Changes with Apache 2.4.10 + *) mod_proxy_scgi: Support Unix sockets. ap_proxy_port_of_scheme(): + Support default SCGI port (4000). [Jeff Trawick] + *) mod_cache: Fix AH00784 errors on Windows when the the CacheLock directive is enabled. [Eric Covener] diff --git a/STATUS b/STATUS index 4a872916ae..54c353428e 100644 --- a/STATUS +++ b/STATUS @@ -100,10 +100,6 @@ RELEASE SHOWSTOPPERS: PATCHES ACCEPTED TO BACKPORT FROM TRUNK: [ start all new proposals below, under PATCHES PROPOSED. ] - * mod_proxy_scgi: Support Unix sockets - httpd patch: http://svn.apache.org/r1592529 - 2.4.x patch: trunk patch works modulo CHANGES - +1: trawick, ylavic, jim PATCHES PROPOSED TO BACKPORT FROM TRUNK: [ New proposals should be added at the end of the list ] diff --git a/modules/proxy/mod_proxy_scgi.c b/modules/proxy/mod_proxy_scgi.c index f77a986e28..6deae78883 100644 --- a/modules/proxy/mod_proxy_scgi.c +++ b/modules/proxy/mod_proxy_scgi.c @@ -176,13 +176,15 @@ static int scgi_canon(request_rec *r, char *url) { char *host, sport[sizeof(":65535")]; const char *err, *path; - apr_port_t port = SCGI_DEFAULT_PORT; + apr_port_t port, def_port; if (strncasecmp(url, SCHEME "://", sizeof(SCHEME) + 2)) { return DECLINED; } url += sizeof(SCHEME); /* Keep slashes */ + port = def_port = SCGI_DEFAULT_PORT; + err = ap_proxy_canon_netloc(r->pool, &url, NULL, NULL, &host, &port); if (err) { ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, APLOGNO(00857) @@ -190,7 +192,12 @@ static int scgi_canon(request_rec *r, char *url) return HTTP_BAD_REQUEST; } - apr_snprintf(sport, sizeof(sport), ":%u", port); + if (port != def_port) { + apr_snprintf(sport, sizeof(sport), ":%u", port); + } + else { + sport[0] = '\0'; + } if (ap_strchr(host, ':')) { /* if literal IPv6 address */ host = apr_pstrcat(r->pool, "[", host, "]", NULL); diff --git a/modules/proxy/proxy_util.c b/modules/proxy/proxy_util.c index 741830c0b8..3dd12ca329 100644 --- a/modules/proxy/proxy_util.c +++ b/modules/proxy/proxy_util.c @@ -3487,6 +3487,7 @@ static proxy_schemes_t pschemes[] = { {"fcgi", 8000}, {"ajp", AJP13_DEF_PORT}, + {"scgi", 4000}, { NULL, 0xFFFF } /* unknown port */ };