On Oct 11, 2008, at 10:52 AM, Sascha Wilde wrote:
I have made a first rough sketch of the userdb-checkpassword back end,basically by copying the code of the passdb version. Now I stumbled upon the note "FIXME: if we ever do some other kind of forking, this needs fixing" in sigchld_handler().The only problem I experienced is, that the handler dosen't return, when the signaling child wasn't listed in the modules clients -- but simplyreplacing the continue with return like this:Please ignore this statement -- wrong test, wrong result ... The proposed change is not sufficient, the only reason why my testdidn't fail was, that I used an other passdb backend, so that my userdbbackend was the only one registering a SIGCHILD handler...
This might be helpful: http://hg.dovecot.org/icecap/file/401c2bc71594/src/lib/child-wait.h http://hg.dovecot.org/icecap/file/401c2bc71594/src/lib/child-wait.cIdea would be that you'd have two child_waits, one for passdb and one for userdb. Then you'd add all the PIDs to that wait structure. I guess it should also have a plain child_wait_new() without a PID.
PGP.sig
Description: This is a digitally signed message part