On Sun, Mar 14, 2010 at 01:35:44AM +0100, Marc Dequènes (Duck) wrote: > Netbase has recently introduced the sysctl-setting > net.ipv6.bindv6only=1 in /etc/sysctl.d/bindv6only.conf and this setting > will probably be the default in squeeze. > > This setting disable the automatic bind-mapping from ipv6 to ipv4, then > if you want to listen on both protocol, you've got to bind on both. The > former behavior is broken as it does not allow useful combinations and > does not respect standards established on all other OSes. With the > 'inet6' ejabberd setting then it listen on ipv6 only, which is not what > is expected. > > More info on the problem here : > http://lists.debian.org/debian-devel/2009/10/msg00541.html
I'm not quite sure I really understand what do you claim to be the intended listening behaviour. With net.ipv6.bindv6only=0 ejabberd will 1) if the "inet6" option is not specified for a listener, ejabberd will bind its socket to IPv4 only. 2) if the "inet6" option is specified for a listener, ejabberd will bind its socket to IPv6 only, and no IPv4 forwarding will take place. Hence, the only difference that new sysctl default introduces is the failure to accept IPv4 traffic for sites which use IPv6 connectivity. So, do you claim that the intended behaviour would be to somehow allow setups in which the listeners would accept both protocols on their sockets at the same time? In this case, to me it seems that the way to go would be to modify ejabberd so that the configuration sections for its listeners accept either an option like "inet4" which would have an ability to be specified along with "inet6", or an exclusive (WRT inet6/inet4) option like "inet64", "inet46" or so. -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected]

