On 2011-02-22, Timo Sirainen wrote:
On Tue, 2011-02-22 at 11:02 +0100, Petter Urkedal wrote:
userdb { driver = passwd args = home=/srv/mail/nbi.ku.dk/%1n/%n mail=maildir:~/Maildir }
The problem with passwd is that it can't separate "user doesn't exist" from "temporary error". http://wiki2.dovecot.org/UserDatabase/NSS can separate these, but it hasn't been tested much..
We use Postfix on the front-end, which is very configurable in this respect. I don't see a way to override the error code from LMTP, though, but suggestions are welcome.
I don't really like adding settings that have very few users..
I understand, it's really a workaround. A global directive to turn all permanent errors into temporary ones, would do as well, since any error from LMTP is a potential issue we want to know about. I'm not sure whether that's any nicer from your point of view.
Well, there aren't really any other permanent errors.. Quota already has quota_full_tempfail setting.
I think there is a better solution. It seems that getpwnam_r is POSIX and does the right thing. The attached patch adds a feature-check for getpwnam_r and, if present, uses it in userdb-passwd.c in place of the problematic getpwnam. I've not some light testing on a non-production server.