4.54.4

Steve Freegard steve.freegard at fsl.com
Tue May 23 11:47:30 UTC 2006


Hi Jules,
 
> See below.
> You can also find out easily by running a MailScanner --lint 
> and parsing the output of that.

I thought of that a while ago -- it has a few major drawbacks though:

1)  Speed:  time MailScanner --lint = real    0m10.789s
2)  Because of the speed issue, it would require some form or persistent
storage (shared memory) between the Apache children with the result cached
until Apache is restarted.  This would cause a problem if the virus scanners
are changed and the person that initialises this gets to wait 10+ seconds
before the page is displayed.
3)  If virus scanners are changed in the future to a different set, then the
old historical data is lost (as the regexps no longer match).
4)  This original method was really really ugly...

> 
> What happens when the regexp needs to use a ( ) before the one  
> containing the virus name?
> 

That would be okay -- you would have do two ( ) captures, one for the
filename and the other for the virus name, then have a munge rule to say
which is with for each scanner e.g. $1 = virusname, $2 = filename or vice
versa.

> 
> Eek. This is actually going to involve some work isn't it :(
> 

It is -- but I really think it will be worth the pain.

Thinking about this further - I could move all of this functionality into a
CustomFunction and work it out in there as I can get the list of scanners
from MailScanner::SweepViruses::InstalledScanners(); and that would save you
from having to put this into SweepViruses...

Okay -- I'm off to try this...

Cheers,
Steve.




More information about the MailScanner-Beta mailing list