I have tested ejabberd 2.0.1-6+lenny1 with "IPv6 config" on a Lenny box which has only IPv4 connectivity.

I have added "inet6" atom to the configuration clauses for all available listeners (c2c, s2s-in and http-poll).

With the ipv6 kernel module loaded (the default for Lenny), ejabberd starts OK and listens on ipv6 sockets (:::5222 etc). Connecting to it works both from localhost and from the IPv4 network the box is connected to. That is, the kernel tunneling works OK as reported earlier in the followups to this bug report.

With the ipv6 kernel module blacklisted (a line "blacklist ipv6" added to /etc/modprobe.d/blacklist and the box rebooted) ejabberd starts up but is not operational because listeners fail to open their sockets with the EAFNOSUPPORT errors.

An interesting observation: Apache, which is IPv6 enabled, works OK both with and without the ipv6 module present: when IPv6 is available, it binds to IPv6 socket, otherwise it binds to IPv4.

Therefore, ejabberd does not appear to be on par with Apache in this respect. I think, ideally, ejabberd should have no "inet6" option for listeners, but should rather do what (supposedly) Apache does:
1) Try to open its socket with inet6, and
2) Try to open the socket without inet6 if (1) fails with EAFNOSUPPORT.

Unfortunately, this requires patching ejabberd, and I'm not sure upstream will be willing to accept such a patch.

As a conclusion, I'm still unsure about what we should do about this bug. There's an IPv6 issue present in Erlang which affects ejabberd (see #539409), so it looks like the IPv6 support in ejabberd still remains
somewhat clumsy.



--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to