Hi,

I'm writing an passdb/userdb plugin to authenticate against an external daemon listening on a UNIX socket.

The connection to the daemon is 1 request at a time and thus blocking (unlike passdb-ldap), but the daemon is preforking, so it can handle more connections at a time.

I read from the Wiki:
http://wiki2.dovecot.org/Design/AuthProcess

* "The authentication may begin new authentication requests even before the existing ones are finished. ", and

* "If the passdb uses connections to external services, it's preferred that they use non-blocking connections. Dovecot does this whenever possible (PostgreSQL and LDAP for example). If it's not possible, set blocking = TRUE. "

... which tells me to set the module as blocking and let more auth worker processes do the work - creating 1 daemon process for each auth worker process, I guess.

But I also have the option, to let the passdb/userdb plugin maintain a pools of used/idle connections to the daemon and just pick a idle connection and moving it to the used pool on each auth_request.
Which would save me the auth worker processes.

Is there a preferred dovecot way?

/Peter

Reply via email to