How does unix_listener works? [Was: Issue with exim and auth protocol]

Mildred Ki'Lya mildred-ml at
Thu Jul 31 11:01:22 UTC 2014

> Well, first of all auth-userdb and auth-client are completely
> different things.
> exim must connect to auth-client and _not_ auth-userdb.
> 2nd: If the config does not enlist auth-client, look at the full config:
> doveconf -a
> There you see all effective settings. hence, I guess you need to
> replicate the setting from your running server into your local.conf in
> order to get exim access permissions.

Thank you.

What I don't understand is how unix_listener works and how to specify
independently the socket file used and the protocol spoken on the socket.

For example, to get postfix to work (I was using postfix before I used
exim), we configure the auth service this way:

  service auth {
    unix_listener /var/spool/postfix/private/auth { ... }

What I deduced from this is that the unix_listener command took a file
path as argument and the permissions inside the {} block.

Now, when I look at the configuration for auth-userdb and auth-client, I

  service auth {
    unix_listener auth-client {... }
    unix_listener auth-userdb { ... }

Using the rule deduced above, I see two sockets being declared.
auth-client is a path relative to /var/run/dovecot, and auth-userdb is
also a path in /var/run/dovecot. I see no difference between the two,
except the file path. I deduce then that those two sockets respond to
the same protocol provided by the service auth.

Obviously, I am wrong.

Then, how does the auth service knows which protocol to speak on
/var/run/dovecot/auth-userdb, /var/run/dovecot/auth-client and
/var/spool/postfix/private/auth? This is not specified in the
configuration (even doveconf -a).

If I specify:

  service auth {
    unix_listener some-socket-file {... }

I suppose I'll find a socket in /var/run/dovecot/some-socket-file. Which
protocol does it speak?

More generally, is there somewhere when the configuration file is
documented? I always wondered what happened when I redefined a section
("service auth" for example). Will it replace completely the previous
section or will it only overwrite the variables specified?

Thank you


More information about the dovecot mailing list