mirror of
https://github.com/apache/httpd.git
synced 2025-08-08 15:02:10 +03:00
mod_proxy_scgi: Support Unix sockets.
ap_proxy_port_of_scheme(): Support default SCGI port (4000). git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1592529 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
3
CHANGES
3
CHANGES
@@ -1,6 +1,9 @@
|
|||||||
-*- coding: utf-8 -*-
|
-*- coding: utf-8 -*-
|
||||||
Changes with Apache 2.5.0
|
Changes with Apache 2.5.0
|
||||||
|
|
||||||
|
*) mod_proxy_scgi: Support Unix sockets. ap_proxy_port_of_scheme():
|
||||||
|
Support default SCGI port (4000). [Jeff Trawick]
|
||||||
|
|
||||||
*) mod_proxy_fcgi: Fix occasional high CPU when handling request bodies.
|
*) mod_proxy_fcgi: Fix occasional high CPU when handling request bodies.
|
||||||
[Jeff Trawick]
|
[Jeff Trawick]
|
||||||
|
|
||||||
|
@@ -176,13 +176,15 @@ static int scgi_canon(request_rec *r, char *url)
|
|||||||
{
|
{
|
||||||
char *host, sport[sizeof(":65535")];
|
char *host, sport[sizeof(":65535")];
|
||||||
const char *err, *path;
|
const char *err, *path;
|
||||||
apr_port_t port = SCGI_DEFAULT_PORT;
|
apr_port_t port, def_port;
|
||||||
|
|
||||||
if (strncasecmp(url, SCHEME "://", sizeof(SCHEME) + 2)) {
|
if (strncasecmp(url, SCHEME "://", sizeof(SCHEME) + 2)) {
|
||||||
return DECLINED;
|
return DECLINED;
|
||||||
}
|
}
|
||||||
url += sizeof(SCHEME); /* Keep slashes */
|
url += sizeof(SCHEME); /* Keep slashes */
|
||||||
|
|
||||||
|
port = def_port = SCGI_DEFAULT_PORT;
|
||||||
|
|
||||||
err = ap_proxy_canon_netloc(r->pool, &url, NULL, NULL, &host, &port);
|
err = ap_proxy_canon_netloc(r->pool, &url, NULL, NULL, &host, &port);
|
||||||
if (err) {
|
if (err) {
|
||||||
ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, APLOGNO(00857)
|
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;
|
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 */
|
if (ap_strchr(host, ':')) { /* if literal IPv6 address */
|
||||||
host = apr_pstrcat(r->pool, "[", host, "]", NULL);
|
host = apr_pstrcat(r->pool, "[", host, "]", NULL);
|
||||||
|
@@ -3514,6 +3514,7 @@ static proxy_schemes_t pschemes[] =
|
|||||||
{
|
{
|
||||||
{"fcgi", 8000},
|
{"fcgi", 8000},
|
||||||
{"ajp", AJP13_DEF_PORT},
|
{"ajp", AJP13_DEF_PORT},
|
||||||
|
{"scgi", 4000},
|
||||||
{ NULL, 0xFFFF } /* unknown port */
|
{ NULL, 0xFFFF } /* unknown port */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user