On Wed, Feb 02, 2005 at 11:11:15AM -0500, Roger Merchberger wrote:
> Finally decided to give IMAP a try; to me it seemed BincIMAP may be
> the closest match to 'the one qmail way' ;-)
Cool! :)
> Downloaded, installed setup (tcpserver & multilog) and all working
> except authentication, of which I'm using a custom (perl based)
> checkpasswd which works with both qmail and vmailmgr.
[..]
> Of course, I realize this may not be near enough information, so I
> have put my custom zchkpasswd.pl here, the full strace (90K ish)
> and a tail of the logs, my run script & my bincimap.conf files
> here:
I don't know perl and do not want to learn it and hence don't fully
understand everything that the script does, but this strace line
explains the problem;
8910 execve("/var/qmail/bincimap/bin/bincimapd",
["/var/qmail/bincimap/bin/bincimap"...], [/* 4 vars */]) = 0
This is where the checkpassword Perl script executes bincimapd. We
see the path from your run file, and that there are some number of
arguments, and that there are four (4) environment variables being
in the environment being passed to bincimapd, namely the four set by
the script; USER, UID, HOME and SHELL. This isn't enough however, any
existing environment as exported by bincimap-up must be kept and
forwarded to bincimapd, since configuration information is stored
there in encoded form.
This is the exact same error that showed up a while ago for Jos, who
also used a custom checkpassword program, even if his implementation
was in C.
On another note, I would suggest that you rewrite the checkpassword
program in C, so that Perl doesn't talk directly to the network.
Does vcheckpw (?) from vmailmgr support PGSQL?
//Peter