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

Barry Jaspan writes:
> I have recently upgraded my SpamAssassin-based product to use SA 
> 3.0-rc2.  Generally, I think 3.0 is excellent; congratulations to the 
> developers.  I have a few comments:
> 
> - A bug was introduced between rc1 and rc2.  In BayesStore/DBM.pm, the 
> calls to tie were changed to store the return value.  For example,
> 
>      $res = tie %new_toks, "DB_File", "${name}.new", O_RDWR|O_CREAT|O_EXCL,
>            (oct ($main->{conf}->{bayes_file_mode}) & 0666);
>      umask $umask;
>      return 0 unless $res;
> 
> Later, %new_toks is untied and files are renamed.  Storing $res, however, 
> keeps a handle to the underlying file open, so the rename fails (at least 
> on Windows).  The fix is simple: after "return 0...", just add:
> 
>      undef $res;

Hi Barry!

gack.  that definitely needs a BZ entry, a big bug on windows :(

> - The plugin interface is a great idea; it allowed me to move code I 
> previously had to integrate into each new version of SA out of the SA 
> tree.  As currently designed, however, plugin methods are effectively 
> restricted to returning integers due to the comparison with 
> INHIBIT_CALLBACKS.  I suggest that as few assumptions as possible be made 
> about plugin method return values, and we can just require methods to call 
> inhibit_callbacks() if they want to instead of returning INHIBIT_CALLBACKS.

yep, good point.  I hadn't spotted that.  could you open a separate
bug on that?

> - I suggest adding a plugin callback to PerMsgStatus::_get_tag, so plugins 
> can define their own report tags.

sure!  another bug ;)

> - I also suggest adding plugin callbacks (a) to get_report(), so plugins 
> can change the report format, and (b) to report_safe() etc., so plugins can 
> modify the rewritten message.  The implementation of these is less clear 
> than the _get_tag callback, though.

hmm. yep.

I'd suggest that this and the previous one could share a "bug" on the
BZ, since they're quite related.  Also, since you're keen to see
them in the code and working, I suggest that you go for it, come up
with some kind of implementation (even if just a stub "demo" one)
so we have something to think about, and I'm sure we'll have some
constructive comments ;).   It's unlikely we'd get around to
implementing these ourselves otherwise, unfortunately...

as Theo said, we use the BZ to track pretty much all patches, feature
reqs, work items, and discussion thereof ;)

thanks!

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

iD8DBQFBNhVmQTcbUG5Y7woRAjZYAJ9Q1m5rnYi2fNwwTGwxKfhlk8W30QCcDjCp
HC/4ukY4xcTawbhLbYj9ej8=
=cBys
-----END PGP SIGNATURE-----

Reply via email to