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