httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ryan Phillips <ryan-apa...@trolocsis.com>
Subject Re: [patch] Add IPV6 'specials' flag to mod_rewrite
Date Wed, 11 Jun 2008 15:57:03 GMT
Jeff Trawick <trawick@gmail.com> said:
> On Mon, Jun 9, 2008 at 9:19 PM, Ryan Phillips <ryan-apache@trolocsis.com> wrote:
> > Ryan Phillips <ryan-apache@trolocsis.com> said:
> >> So I needed to create some mod_rewrite rules only for IPv6 when httpd is
> >> configured for both ipv4 and ipv6 modes.  This patch adds
> >> 'RewriteCond IPV6 on' support to the ruleset.
> >>
> >> I initially tried to see if the incoming socket was APR_INET6, but couldn't
> >> find the right structure within the request to query.
> >>
> >
> > Should r->connection->local_addr or remote_addr have the correct socket
> > family?  If I try either of these over an IPv4 connection, I always get a
> > socket family of IPv6.
> 
> On most platforms, httpd will handle IPv4 connections on an IPv6
> socket; the address family will be APR_INET6 and the socket address
> will have a special format which indicates that the client is IPv4
> (http://en.wikipedia.org/wiki/IPv4_mapped_address).
> 
> Replace "Listen ##" with the combination "Listen 0.0.0.0:##" + "Listen
> [::]:##" and you should be able to distinguish between client
> connection type by checking the address family (not a real solution).
> 
> The system macro IN6_IS_ADDR_V4MAPPED() can check if an IPv6 socket
> address represents an IPv4 client connection.  Apparently APR doesn't
> provide an equivalent.

Jeff, 

Thanks for the detailed explanation.  I wasn't aware of this.

Regards,
Ryan

Mime
View raw message