Mildred Ki'Lya
2014-Jul-31 11:01 UTC
How does unix_listener works? [Was: Issue with exim and auth protocol]
> > 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 see: 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 Mildred
Steffen Kaiser
2014-Jul-31 12:25 UTC
How does unix_listener works? [Was: Issue with exim and auth protocol]
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Thu, 31 Jul 2014, Mildred Ki'Lya wrote:>> >> 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 > see: > > 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).See http://wiki2.dovecot.org/Services#auth "With UNIX listeners the client type is selected based on the filename after the last "-" in the filename. For example "anything-userdb" is of "userdb" type. The default type is "client" for inet insteners and unrecognized UNIX listeners. " - -- Steffen Kaiser -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) iQEVAwUBU9o1pnz1H7kL/d9rAQJHDAf/YQkjw3JktdxLq/5444UrBda1+dP15uQa 4yV4ocJOe2pvYok41saxB7qYvHHKIWjOMKVTPSyntjyzNklwNzCNB3k3UptBKlFn cRomJp2UXbn91xc1Z1JnBDlzPWOSh8DOqBo/pQhwFf+PhgyzDNz/YVclf9XhnD5b rLR/OPkQPtoEi7/m14riKjqSzIJVn2RDm9gX91V0jMcWjjSFybBid9dnQtzXElin W48im0izEYr/K9nT4RBdIh6kTcXwm7nzCjCe5zfXL8I1pn10Ij+6yIDXDNZqQM4M TAArRfhWCyPXdxHzut9Za3R6zD+qh6r2SO8hQCGn24Um45Jdq8Q6ug==hNGK -----END PGP SIGNATURE-----