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 simply
replacing 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 test
didn't fail was, that I used an other passdb backend, so that my userdb
backend 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.c

Idea 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.

Attachment: PGP.sig
Description: This is a digitally signed message part

Reply via email to