SpamLookup - Lookups(続き)
spamlookup.pmを見てみた。このなかにあるtboriginというメソッドはURLからひいたipと実際のipを比較したり,URLやipのブラックリストと比較したりしている。で,最後にプラグインの設定である $config->{tborigin_mode} を見て,未公開にしたり迷惑と判定したりしている。$config->{tborigin_mode} == 0 のとき(プラグインの設定で"設定しない"にしているとき)は最終判定だけしないで抜ける。これが問題だった。
うちではURLからipをひくことができない環境で動かしているので,tboriginをくぐると,ipをひけないエラーになり,このとき必ずスパム判定になってしまうのだ。うちのようなケースでは $config->{tborigin_mode} == 0 のときはメソッドの先頭で return して欲しい。つーわけで,$config を取得した直後に次の1行を入れた。
return (ABSTAIN) unless ($config->{tborigin_mode});
こうすれば,"設定しない"ときは(ほぼ)何もしない。
他のメソッドでも同じ処理をいれないとまずいケースがあるかもなあ。
【追記】domainbl とか ipbl あたりのメソッドでは,ちゃんと上記相当の処理が入っている。wordfilter や memory 系には入っていないなあ。