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?
signature.asc
Description: This is a digitally signed message part