Short Version: Mimedefang 2.75 doesn't implement delay on filter_relay routine. I think that is a bug. Where do I submit patches?
Long Version: I'm trying to run a small experiment to delay on relay connect Under special circumstances, and I'm having some problems. It appears that the perl filter_relay routine Returns an 5 element list ( code, message, code, dsn, delay) Of course many of these can be undef. In examining the source code, and milter specifications, A few things captivate me. The first thing is that we cant call smfi_setreply from connect callback. Ok. That is a limit, but the delay is not implemented in the smfi callbacks, it is instead implemented by the mimedefang process. The mimedefang sources carefully pass the list ( message, code, dsn, delay) Back through - from the mimedefang-filter - through the intermediary multiplexor and its communication buffers - and into mfconnect routine mimedefang.c In the mfconnect routine the code reads if (doRelayCheck) { char buf2[SMALLBUF]; int n = MXRelayOK(MultiplexorSocketName, buf2, data->hostip, data->hostname, data->hostport, data->myip, data->daemon_port); if (n == MD_REJECT) { /* Can't call smfi_setreply from connect callback */ /* set_dsn(ctx, buf2, 5); */ cleanup(ctx); DEBUG_EXIT("mfconnect", "SMFIS_REJECT"); return SMFIS_REJECT; } if (n <= MD_TEMPFAIL) { ... } if (n == MD_ACCEPT_AND_NO_MORE_FILTERING) { /* Can't call smfi_setreply from connect callback */ /* set_dsn(ctx, buf2, 2); */ cleanup(ctx); DEBUG_EXIT("mfconnect", "SMFIS_ACCEPT"); return SMFIS_ACCEPT; } if (n == MD_DISCARD) { ... } } DEBUG_EXIT("mfconnect", "SMFIS_CONTINUE"); return SMFIS_CONTINUE; } The set_dsn routine is responsible for - decoding the arguments from the multiplexor - implementing the delay - calling smfi_set_reply but only when the third parameter is 4 or 5. If you'll examine the code above you'll see - that we don't explicty check for MD_CONTINUE - that filter routine always avoids calling set_dsn, even when num param is not 4 or 5 I believe that it is a bug that the 2.75 version of mimedefang does not implement the delay on filter_relay , especially on 'CONTINUE'. I sincerely hope that you agree. I will have some patches I would like to submit. Where should I submit them? Dale Moore _______________________________________________ NOTE: If there is a disclaimer or other legal boilerplate in the above message, it is NULL AND VOID. You may ignore it. Visit http://www.mimedefang.org and http://www.roaringpenguin.com MIMEDefang mailing list MIMEDefang@lists.roaringpenguin.com http://lists.roaringpenguin.com/mailman/listinfo/mimedefang