On Tue, May 04, 2010 at 11:25:16AM -0700, - wrote:

The milter interface docs tells us that the needed variables are available at the filter_helo() stage (if such is enabled).

Sure, but the way MIMEDefang passes those macros down to the Perl code is by writing lines like:
        =client_addr 10.0.0.1
        =client_port 23456
        =daemon_port 25
        ..etc..
to the COMMANDS file.

The problem and we don't have a COMMANDS file until after MAIL FROM, because we wait until Sendmail gives us a queue ID so that we can use that ID in the directory name.

One option we were kicking around is using a different identifier for the directory name. We're already generating a unique per-message identifier (gen_mx_id(), which gives us $MIMEDefangID via an 'i' line in COMMANDS) so all that would need to be done is:
        - generate that identifier earlier
- create /var/spool/MIMEDefang/mdefang-XXXXXXXX using the mxid value instead of the queue ID value
        - create the COMMANDS file earlier

Possible problems:
- additional overhead created by generating these directories earlier on (not sure how significant this would be) - confusion or breakage of external scripts that relied on mdefang- directories containing the Sendmail queue ID in their name. This could be mitigated by auto-generating symlinks once we do have a queue ID

Benefits:
- filter_helo() can stop being a second-class citizen, as it would have a COMMANDS file

Thoughts?

Cheers,
Dave
--
Dave O'Neill <[email protected]>    Roaring Penguin Software Inc.
+1 (613) 231-6599                        http://www.roaringpenguin.com/
For CanIt technical support, please mail: [email protected]
_______________________________________________
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 [email protected]
http://lists.roaringpenguin.com/mailman/listinfo/mimedefang

Reply via email to