[僕] 言及リンクのない TrackBack ping を弾くプラグインの不具合

僕ト云フ事

たろマークはてなブックマーク

2005年09月01日

[mt][perl][plugin][spam][trackback] 言及リンクのない TrackBack ping を弾くプラグインの不具合

ちょっと、TBPingDSBL をスルーしてくる TrackBack SPAM が増えてきましてうんざりぎみだったので、ハテナオヤ氏作 の Plugin を導入に踏み切りました。

以前はまぁ、関係のある話題だったら TB どーぞって感じだったのですが、これで言及リンクがないと TB 受け付けなくなります。(TB 受けてて弾いてるのに気がついたら、手動でリンク張ってきます。SPAM 削除より手間は少なくてすむだろうw)

naoyaのはてなダイアリー - Movable Type で言及リンクのない TrackBack ping を弾くプラグイン

と、いうことで Movable Type でリンクなしトラックバックを受け付けなくするためのプラグイン。mt.cgi で「サイトのURL」に指定した URL が言及元に含まれていなければ弾きます。

http://naoya.dyndns.org/~naoya/lib/mtplugins/mt-ban-norefertb.pl

んで、導入してみて経過を見ていたのですが、配布元エントリのコメントにあるようなエラーが見られて原因を究明してみました。

MT::Plugin::BanNoReferTb v0.01 died with: Can't locate object method "status" via package "HTTP::Headers" at (eval 27) line 1.

ちなみに環境は、こんな感じです。

  • Redhat Linux 9
  • apache 1.3.33
  • perl 5.8.0
  • LWP 5.803
  • LWP::UserAgent 2.033
  • HTTP::Request 1.40
  • HTTP::Response 1.52
  • HTTP::Headers 1.62

LWP はたまに遊ぶ程度なのでよくわかってないんですが、怒られてるのは、29行目の $res->status っぽいです。

28:    my $res = $ua->request(HTTP::Request->new(GET => $tbping->source_url));
29:    return error($app, $tbping, "the server returned " . $res->status)
30:        unless ($res->is_success);

$ua->request の戻り値は、HTTP::Response オブジェクトなので、POD を確認すると確かに無いです。多分、$res->status_line かなと。多分。
んで、さくっと修正してたら、上手く動いてるようです。

ちなみに、このエラーは、TB 元のページが無いだとか(404)、タイムアウトしただとかじゃないと出てこないので、こんな修正しなくても使えます。多分。

トラックバック

このエントリーのトラックバックURL:
http://vkgtaro.jp/cgi-bin/mt/mt-tb.cgi/472

この一覧は、次のエントリーを参照しています: 言及リンクのない TrackBack ping を弾くプラグインの不具合:

» mt-ban-norefertb.pl 0.02 from naoyaのはてなダイアリー
んで、導入してみて経過を見ていたのですが、配布元エントリのコメントにあるようなエラーが見られて原因を究明してみました。 mt-ban-norefertb.pl ... [詳しくはこちら]

コメントを投稿