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 系には入っていないなあ。