-----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-----