1
0
mirror of https://github.com/apache/httpd.git synced 2025-08-08 15:02:10 +03:00

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
This commit is contained in:
Martin Kraemer
2008-02-29 12:15:56 +00:00
parent fa35773888
commit e9ffd3136c

View File

@@ -737,7 +737,8 @@ static int proxy_needsdomain(request_rec *r, const char *url, const char *domain
return DECLINED; return DECLINED;
/* If host does contain a dot already, or it is "localhost", decline */ /* 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) || strcasecmp(r->parsed_uri.hostname, "localhost") == 0)
return DECLINED; /* host name has a dot already */ return DECLINED; /* host name has a dot already */