You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Bill Stoddard <bi...@wstoddard.com> on 2003/05/13 16:10:39 UTC
Re: cvs commit: httpd-2.0/server core.c
Shouldn't the check be:
#if APR_HAVE_IPV6
??
Bill
trawick@apache.org wrote:
>trawick 2003/04/22 07:51:43
>
> Modified: . CHANGES
> server core.c
> Log:
> Fix ap_construct_url() so that it surrounds IPv6 literal address
> strings with []. This fixes certain types of redirection.
>
> PR: 19207
>
> Revision Changes Path
> 1.1151 +4 -0 httpd-2.0/CHANGES
>
> Index: CHANGES
> ===================================================================
> RCS file: /home/cvs/httpd-2.0/CHANGES,v
> retrieving revision 1.1150
> retrieving revision 1.1151
> diff -u -r1.1150 -r1.1151
> --- CHANGES 18 Apr 2003 19:39:54 -0000 1.1150
> +++ CHANGES 22 Apr 2003 14:51:40 -0000 1.1151
> @@ -2,6 +2,10 @@
>
> [Remove entries to the current 2.0 section below, when backported]
>
> + *) Fix ap_construct_url() so that it surrounds IPv6 literal address
> + strings with []. This fixes certain types of redirection.
> + PR 19207. [Jeff Trawick]
> +
> *) mod_log_config: Add the ability to log the id of the thread
> processing the request via new %P formats. [Jeff Trawick]
>
>
>
>
> 1.232 +18 -1 httpd-2.0/server/core.c
>
> Index: core.c
> ===================================================================
> RCS file: /home/cvs/httpd-2.0/server/core.c,v
> retrieving revision 1.231
> retrieving revision 1.232
> diff -u -r1.231 -r1.232
> --- core.c 3 Feb 2003 17:53:18 -0000 1.231
> +++ core.c 22 Apr 2003 14:51:42 -0000 1.232
> @@ -885,6 +885,23 @@
> return r->server->server_hostname;
> }
>
> +/*
> + * Get the current server name from the request for the purposes
> + * of using in a URL. If the server name is an IPv6 literal
> + * address, it will be returned in URL format (e.g., "[fe80::1]").
> + */
> +static const char *get_server_name_for_url(request_rec *r)
> +{
> + const char *plain_server_name = ap_get_server_name(r);
> +
> +#ifdef APR_HAVE_IPV6
> + if (ap_strchr_c(plain_server_name, ':')) { /* IPv6 literal? */
> + return apr_psprintf(r->pool, "[%s]", plain_server_name);
> + }
> +#endif
> + return plain_server_name;
> +}
> +
> AP_DECLARE(apr_port_t) ap_get_server_port(const request_rec *r)
> {
> apr_port_t port;
> @@ -925,7 +942,7 @@
> request_rec *r)
> {
> unsigned port = ap_get_server_port(r);
> - const char *host = ap_get_server_name(r);
> + const char *host = get_server_name_for_url(r);
>
> if (ap_is_default_port(port, r)) {
> return apr_pstrcat(p, ap_http_method(r), "://", host, uri, NULL);
>
>
>
>
>
>
Re: cvs commit: httpd-2.0/server core.c
Posted by Jeff Trawick <tr...@attglobal.net>.
Bill Stoddard wrote:
> Shouldn't the check be:
>
> #if APR_HAVE_IPV6
> ??
damn straight... what kind of moron did that?
(not that it doesn't work properly as-is, but I need to fix it anyway)