On Wed, 2009-01-07 at 14:08 -0500, Bruce A. Mallett wrote:
Lastly with an explicit "listen = *, [::]"
-bash-3.2# dovecot -F Fatal: listen(::, 143) failed: Address already in use -bash-3.2# dovecot -n .. Interesting: I notice that the "listen" does not show up in the last case.
That's because in your configuration it's the default and -n doesn't show if the value is identical with the default.
But Dovecot distribution's default is "*", so you have applied some patches to it. Is it possible that one of those patches breaks it?
Also..
then it will start up fine. Perhaps it is as though the code tries to open the port twice for both ip4 and ip6?
This is correct. It does that. But that shouldn't be a problem because they are handled separately. This code should make sure of that:
/* If using IPv6, bind only to IPv6 if possible. This avoids
ambiguities with IPv4-mapped IPv6 addresses. */
#ifdef IPV6_V6ONLY if (so.sin.sin_family == AF_INET6) { opt = 1; setsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY, &opt, sizeof(opt)); } #endif
Maybe it's not working for you for some reason. Did you have this problem with earlier Dovecot versions? If you set listen = [::], can you still log in with IPv4?