At 21/10/2004 21/10/2004 -0700, you wrote:

vdelivermail calls _exit() when running a command in a .qmail file (exit codes 99, 100 and 111). It should really be calling vexit() to give the MySQL lib a chance to close its connections.

We could also consider just using atexit() to register functions that will be automatically called at exit, then we don't have to worry about calling vexit instead (which calls vclose).

I'm working on the chkuser side, and this is my solution (here semplified)...

Given the fact qmail-smtpd uses only _exit(), and this function is called a lot of times within the source, I'm substituting this _exit() function within qmail-smtpd.c using these definitions:

void my_cleaning_call(int a);
#define _exit(a) my_cleaning_call(a)

Then in my chkuser.c module, I have:

#undef _exit
void my_cleaning_call (int a) {
        vclose();
        _exit (a);
}

Any comment?

Tonino


--
Tom Collins  -  [EMAIL PROTECTED]
QmailAdmin: http://qmailadmin.sf.net/  Vpopmail: http://vpopmail.sf.net/
Info on the Sniffter hand-held Network Tester: http://sniffter.com/

------------------------------------------------------------ [EMAIL PROTECTED] Interazioni di Antonio Nati http://www.interazioni.it [EMAIL PROTECTED] ------------------------------------------------------------



Reply via email to