You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by yl...@apache.org on 2024/07/26 14:40:44 UTC
svn commit: r1919533 - in /httpd/httpd/trunk/modules/proxy: mod_proxy.c proxy_util.c
Author: ylavic
Date: Fri Jul 26 14:40:44 2024
New Revision: 1919533
URL: http://svn.apache.org/viewvc?rev=1919533&view=rev
Log:
mod_proxy: Allow for empty UDS URL hostname in ProxyPass workers too.
Using "unix:/udspath|scheme:" or "unix:/udspath|scheme://" for a ProxyPass URL
does not work currently, while it works for SetHandler "proxy:unix:...".
Modified:
httpd/httpd/trunk/modules/proxy/mod_proxy.c
httpd/httpd/trunk/modules/proxy/proxy_util.c
Modified: httpd/httpd/trunk/modules/proxy/mod_proxy.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/proxy/mod_proxy.c?rev=1919533&r1=1919532&r2=1919533&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/proxy/mod_proxy.c (original)
+++ httpd/httpd/trunk/modules/proxy/mod_proxy.c Fri Jul 26 14:40:44 2024
@@ -1968,9 +1968,9 @@ PROXY_DECLARE(const char *) ap_proxy_de_
const char *ret, *c;
ret = ptr + 1;
- /* special case: "unix:....|scheme:" is OK, expand
- * to "unix:....|scheme://localhost"
- * */
+ /* special cases: "unix:...|scheme:" ind "unix:...|scheme://" are OK,
+ * expand to "unix:....|scheme://localhost"
+ */
c = ap_strchr_c(ret, ':');
if (c == NULL) {
return NULL;
@@ -1978,6 +1978,9 @@ PROXY_DECLARE(const char *) ap_proxy_de_
if (c[1] == '\0') {
return apr_pstrcat(p, ret, "//localhost", NULL);
}
+ else if (c[1] == '/' && c[2] == '/' && !c[3]) {
+ return apr_pstrcat(p, ret, "localhost", NULL);
+ }
else {
return ret;
}
Modified: httpd/httpd/trunk/modules/proxy/proxy_util.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/proxy/proxy_util.c?rev=1919533&r1=1919532&r2=1919533&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/proxy/proxy_util.c (original)
+++ httpd/httpd/trunk/modules/proxy/proxy_util.c Fri Jul 26 14:40:44 2024
@@ -1978,7 +1978,7 @@ PROXY_DECLARE(char *) ap_proxy_define_wo
&& (ptr = ap_strchr_c(url + 5, '|'))) {
rv = apr_uri_parse(p, apr_pstrmemdup(p, url, ptr - url), &uri);
if (rv == APR_SUCCESS) {
- sockpath = ap_runtime_dir_relative(p, uri.path);;
+ sockpath = ap_runtime_dir_relative(p, uri.path);
ptr++; /* so we get the scheme for the uds */
}
else {
@@ -2044,7 +2044,7 @@ PROXY_DECLARE(char *) ap_proxy_define_wo
if (!uri.scheme) {
return apr_pstrcat(p, "URL must be absolute!: ", url, NULL);
}
- if (!uri.hostname) {
+ if (!uri.hostname || !*uri.hostname) {
if (sockpath) {
/* allow for unix:/path|http: */
uri.hostname = "localhost";