Sorry for top posting. Phone forces me to. Is your kernel and apache compiled with ipv6 support? You don't need any ipv6 routes, just kernel support so it might just be a case of loading the module. Then apache should default to a v6 socket type if you don't manually specify a listen address. From memory, The v6 sockets have larger address fields and there's also a parameter in the socket structure specifying the socket type. I would imagine this is being lost somewhere and getting replaced with v4 defaults. I had quite a long look at the code but I really don't understand the internals of apache. Sent from my BlackBerry® wireless device
-----Original Message----- From: Sean Gabriel Heacock <[EMAIL PROTECTED]> Date: Mon, 24 Sep 2007 23:19:27 To:Peruser MPM List <[email protected]> Subject: Re: [peruser] 0.0.0.0 addresses showing up in logs, related to ipv6 On Sun, 2007-09-16 at 20:39 +0100, bert wrote: > So according to the output, all is well until it gets here: > > status = listensocks[offset].accept_func((void *)&sock, &listensocks > [offset], ptrans); > > which seems to call receive_from_multiplexer to re-populate the sock > structure... > it seems somewhere within this function, the information about the > original connection is not being passed over correctly. Maybe it's earlier, when the listensocks array is being created: /* Set up the pollfd array */ listensocks = apr_pcalloc(pchild, sizeof(*listensocks) * (num_listensocks)); for (lr = ap_listeners, i = 0; i < num_listensocks; lr = lr->next, i++) { listensocks[i].accept_func = lr->accept_func; listensocks[i].sd = lr->sd; } It's copying over lr->accept_func and lr->sd, but not lr->bind_addr - an apr_sockaddr_t object. Could this be the culprit? Try the attached patch and let me know if that does anything. I'm running with it now, and nothing's broken, but I've never been able to reproduce the 0.0.0.0 problem so I don't know if has fixed anything. If it works, I'll make a new release with this and Rommer's patch from earlier today and call it version 0.3.0 :) -- Sean Gabriel Heacock Telana Internet Services http://www.telana.com/ --- peruser.c (revision 29) +++ peruser.c (working copy) @@ -1590,6 +1590,7 @@ for (lr = ap_listeners, i = 0; i < num_listensocks; lr = lr->next, i++) { listensocks[i].accept_func = lr->accept_func; listensocks[i].sd = lr->sd; + listensocks[i].bind_addr = lr->bind_addr; } pollset = apr_palloc(pchild, sizeof(*pollset) * num_listensocks); _______________________________________________ Peruser mailing list [email protected] http://www.telana.com/mailman/listinfo/peruser _______________________________________________ Peruser mailing list [email protected] http://www.telana.com/mailman/listinfo/peruser
