]> granicus.if.org Git - apache/commitdiff
Be a bit more sane with regard to CanonicalNames. If the user has
authorRyan Bloom <rbb@apache.org>
Wed, 6 Feb 2002 16:58:37 +0000 (16:58 +0000)
committerRyan Bloom <rbb@apache.org>
Wed, 6 Feb 2002 16:58:37 +0000 (16:58 +0000)
specified they want to use the CanonicalName, but they have not
configured a port with the ServerName, then use the same port that
the original request used.

Submitted by:   Ryan Bloom and Ken Coar

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93296 13f79535-47bb-0310-9956-ffa450edef68

CHANGES
server/core.c

diff --git a/CHANGES b/CHANGES
index 67afb2ae3ffe0689b4a049b48009f8b05c3792ed..5afc480eb13975820adae2942669756617bd0de1 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,5 +1,10 @@
 Changes with Apache 2.0.32-dev
 
+  *) Be a bit more sane with regard to CanonicalNames.  If the user has
+     specified they want to use the CanonicalName, but they have not
+     configured a port with the ServerName, then use the same port that 
+     the original request used. [Ryan Bloom and Ken Coar]
+
   *) In core_input_filter, check for an empty brigade after 
      APR_BRIGADE_NORMALIZE().  Otherwise, we can get segfaults if a
      client says it will post some data but we get FIN before any
index c55e114ac446b85aef5f0d49b193f41793714058..95e4f101911d6735c177d9cdf6dae895e1ef748c 100644 (file)
@@ -799,10 +799,13 @@ AP_DECLARE(apr_port_t) ap_get_server_port(const request_rec *r)
         * Apache will use the hostname and port specified in the
         * ServerName directive to construct a canonical name for the
         * server. (If no port was specified in the ServerName
-         * directive, Apache implies port 80 for http:// and
-        * port 443 for https://)
+         * directive, Apache uses the port supplied by the client if
+         * any is supplied, and finally the default port for the protocol
+         * used.
         */
-        port = r->server->port ? r->server->port : ap_default_port(r);
+        port = r->server->port ? r->server->port :
+               r->connection->local_addr->port ? r->connection->local_addr->port :
+               ap_default_port(r);
     }
 
     /* default */