-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Dale Luck writes:
> This is a multi-part message in MIME format.
> 
> ------_=_NextPart_001_01C5660E.C78170A6
> Content-Type: text/plain;
>       charset="iso-8859-1"
> Content-Transfer-Encoding: quoted-printable
> 
> >SPF has a mode whereby a lookup could return data that requires *another*
> >DNS lookup, e.g. the "include:foo.com" directive.
> 
> >Currently we have to use Mail::SPF::Query as a single method call, and
> >allow it to run all necessary queries by itself and simply wait for it to
> >return.  A more efficient way would be to have a polling mode, so we can
> >process our own code while waiting for results, and poll for results
> >intermittently -- similar to how we do DNSBL and URIBL lookups.
> 
> This is exactly the stuff I rewrote inside the check function. Its
> the exact opposite of whats needed to be done if you can use any of
> these results to 'block' without needing any other scores.
> 
> I run all the rbl lookups and then wait for the results to come back.
> If we get a block/hit we return without running anymore rules. This
> gave us a large performance boost in a server environment since we
> can eliminate rules that are essentially ignored early on. There are
> better things to do with the cpu.

well that's interesting!  So you're saying you let the checks run with a
longer total run time, in exchange for being able to early-exit based on
DNSBL lookup results to save CPU time?

I think we've always been heading in the opposite direction -- minimum
total runtime.

It's a good argument to make access to parts of the check() function more
fine-grained for users of the Mail::SpamAssassin::PerMsgStatus class.

- --j.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.5 (GNU/Linux)
Comment: Exmh CVS

iD8DBQFCnNo8MJF5cimLx9ARAvtbAJ9lke3xMD7nRJ5pdikjex8YpCMmaACfU+mX
yh8F1dZnPFGstPEYBP0LmN4=
=EHrD
-----END PGP SIGNATURE-----

Reply via email to