From e9ffd3136c7ca5d3cf7e20c98bafc592629d1fc1 Mon Sep 17 00:00:00 2001 From: Martin Kraemer Date: Fri, 29 Feb 2008 12:15:56 +0000 Subject: [PATCH] When sending a proxy request of the form GET http://[3ffe:1:1001:3000:230:5ff:fe05:3c3c]/server-status HTTP/1.0 through the httpd-2.x mod_proxy.c code, while a directive ProxyDomain .my.dom.ain is in effect, the request is redirected to Location: http://[3ffe:1:1001:3000:230:5ff:fe05:3c3c.my.dom.ain]/server-status The patch fixes this bug, by testing whether the hostname part of the unparsed_uri contains colon characters (which is the case only for IPv6 literals). This patch is also a candidate for httpd-2.0 and httpd-2.2 git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@632304 13f79535-47bb-0310-9956-ffa450edef68 --- modules/proxy/mod_proxy.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/proxy/mod_proxy.c b/modules/proxy/mod_proxy.c index 97d53b604e..45e07681f5 100644 --- a/modules/proxy/mod_proxy.c +++ b/modules/proxy/mod_proxy.c @@ -737,7 +737,8 @@ static int proxy_needsdomain(request_rec *r, const char *url, const char *domain return DECLINED; /* If host does contain a dot already, or it is "localhost", decline */ - if (strchr(r->parsed_uri.hostname, '.') != NULL + if (strchr(r->parsed_uri.hostname, '.') != NULL /* has domain, or IPv4 literal */ + || strchr(r->parsed_uri.hostname, ':') != NULL /* IPv6 literal */ || strcasecmp(r->parsed_uri.hostname, "localhost") == 0) return DECLINED; /* host name has a dot already */ -- 2.40.0