So after an upgrade, Dovecot failed to start:
Error: socket() failed: Address family not supported by protocol Error: service(imap-login): listen(::, 143) failed: Address family not supported by protocol Error: socket() failed: Address family not supported by protocol Error: service(imap-login): listen(::, 993) failed: Address family not supported by protocol Fatal: Failed to start listeners * start-stop-daemon: failed to start `/usr/sbin/dovecot' * ERROR: dovecot failed to start
How irritating.
A google search wasn’t particularly conclusive, but “listen(::, 143) Address family not supported by protocol
” gave me some idea that it might be complaining about IPv6 support. I removed support some time ago from the kernel and libraries. (I don’t have a problem with IPv6 per se, but why have it when my ISP doesn’t support it?) I’ve had Dovecot running well for ages without it, so what changed?
I found the culprit in /etc/dovecot/dovecot.conf:
# A comma separated list of IPs or hosts where to listen in for connections. # "*" listens in all IPv4 interfaces, "::" listens in all IPv6 interfaces. # If you want to specify non-default ports or anything more complex, # edit conf.d/master.conf. #listen = *, ::
So the default configuration now enables IPv6. At least the fix is easy:
listen = *