On Mon, Jun 9, 2008 at 9:19 PM, Ryan Phillips <[EMAIL PROTECTED]> wrote:
> Ryan Phillips <[EMAIL PROTECTED]> 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.

Reply via email to