procmail
[Top] [All Lists]

Re: base64-decoding (v.0.99) with 'just' procmail

2004-03-07 11:19:11
On Sun, 07 Mar 2004, 18:15 GMT+01 (18:15 local time) Ruud H.G. van Tol
wrote:

The current interface only decodes 4 characters at a time
(4 base64-characters into 3 decoded bytes).

I am thinking of a line-oriented interface, so that the caller defines
the start-line and the number of lines.

sounds good. The current unit-wise decoding seems to become a slow
down on larger sizes.

I am thinking of a line-oriented interface, so that the caller defines
the start-line and the number of lines.

In my AV filter, I have the entire base64 content saved within $MATCH
(for a short time only, until it gets flushed asap). I am writing it to a
.base64 file ($BASE64FILE) which will be deleted per default after 

* $ ?"mimencode -u $BASE64FILE -o $VIRUSFILE"

succeeded. When $DEBUG has been turned on in the Configuration file,
all those .base64 files will be kept within the "viruses" directory.
For testing-only purposes, these files could be used to test your
routine in addition to the 'mimencode -u' call and see if both
resulting decoded virus files are in fact identical.

Could you also announce when you release v1.0 so
I could consider replacing the current way I am using in my Softlabs
AntiVirus Filter

Please view it as an option, not as a replacement.

yes, I will probably use it during a test period internally as
described above.

Idea: give the local variables names like savf_Name (where savf =
Softlabs AntiVirus Filter) to make the rc-files more re-usable.

Do you mean all variables that are no built-in Environment variables
and not defined in procmail's global Run Commands file?

Get the date from the From_header. If that fails, maybe try to get it from
the most recent Received-header. If even that fails, call date.

Does this really bring a significant speed up? I only call date once.
And, what is when the entire (infected) mail contains faked header
fields, maybe with a wrong date?

 |     # make sure the header contains a unique Message-ID:
 |     :0 fW
 |      | formail -a "Message-ID:"

Check first if it already has one (saves formail-calls).

OK, I will put that on my To-Do list for the next release.

An issue I am still observing is why

* $ ! ?"test -d $VIRUSDIR/EXE"

results in a verbose log entry of

procmail: Executing "test -d /home/username/mail/TRASH/viruses/EXE"

while

* $ ?"mimencode -u $BASE64FILE -o $VIRUSFILE"

gives

procmail: Executing "mimencode,-u, [...]"

which looks like test is executed on an extra layer shell, in contrast
to the directly executed mimencode. I have the default $SHELLMETAS set
(&|<>~;?*[) and "test -d $SOMEDIRECTORY" does not include any of these
characters. This looks like a bug to me, or is there any other
explaintation?

rob.


_______________________________________________
procmail mailing list
procmail(_at_)lists(_dot_)RWTH-Aachen(_dot_)DE
http://MailMan.RWTH-Aachen.DE/mailman/listinfo/procmail