[Mimedefang] delay on relay problems

2014-09-21 Thread Dale Moore
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


Re: [Mimedefang] delay on relay problems

2014-09-21 Thread David F. Skoll
On Sun, 21 Sep 2014 11:12:42 -0400
Dale Moore dale.mo...@cs.cmu.edu wrote:

 I will have some patches I would like to submit.
 Where should I submit them?

Please post them to this list; I'll grab them.  If they are large,
then please send directly to me at d...@roaringpenguin.com

Regards,

David.
___
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