John Rudd wrote the following on 11/30/2006 9:26 AM -0800:
Jonas Eckerman wrote:
John Rudd wrote:
Question 2: someone asked why my module is "Botnet" instead of
"Mail::SpamAssassin::Plugin::Botnet". The answer is: when I first
started this (and this is/was my first SA Plugin authoring attempt),
I tried that and it didn't work.
That's odd. What errors did you get?
When I change Botnet.pm to have:
package Mail::SpamAssassin::Plugin::Botnet;
use base 'Mail::SpamAssassin::Plugin';
and then change Botnet.cf to have
loadplugin Mail::SpamAssassin::Plugin::Botnet
/etc/mail/spamassassin/Botnet.pm
I get these errors:
[2797] warn: plugin: failed to create instance of plugin
Mail::SpamAssassin::Plugin::Botnet: Can't locate object method "new"
via package "Mail::SpamAssassin::Plugin::Botnet" (perhaps you forgot
to load "Mail::SpamAssassin::Plugin::Botnet"?) at (eval 200) line 1.
[2797] info: config: failed to parse line, skipping: botnet_pass_auth 0
[2797] info: config: failed to parse line, skipping: botnet_skip_ip
^127\.0\.0\.1$
[2797] info: config: failed to parse line, skipping: botnet_skip_ip
^10\..*$
(and it keeps going with an error for each of the config lines I have
in Botnet.cf)
If I go back to what's in the distribution, the errors go away and
everything works fine.
Here are the changes I made to init.pre and Botnet.pm and Botnet.cf:
/etc/mail/spamassassin/init.pre
loadplugin Mail::SpamAssassin::Plugin::Botnet
/etc/mail/spamassassin/Botnet.pm
/etc/mail/spamassassin/Botnet.pm
package Mail::SpamAssassin::Plugin::Botnet;
/etc/mail/spamassassin/Botnet.cf
removed: loadplugin Botnet Botnet.pm
added at top of file: ifplugin Mail::SpamAssassin::Plugin::Botnet
added at end of file: endif
And it works great.
Bill