X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/bb93fccf0690344aa77f9538a508959a6de09847..fc36ba4c1f80d37161967021b7ded6cc7e54819c:/IkiWiki/Plugin/pinger.pm diff --git a/IkiWiki/Plugin/pinger.pm b/IkiWiki/Plugin/pinger.pm index 7b4dce586..ec764caee 100644 --- a/IkiWiki/Plugin/pinger.pm +++ b/IkiWiki/Plugin/pinger.pm @@ -3,7 +3,7 @@ package IkiWiki::Plugin::pinger; use warnings; use strict; -use IkiWiki 2.00; +use IkiWiki 3.00; my %pages; my $pinged=0; @@ -13,7 +13,7 @@ sub import { hook(type => "needsbuild", id => "pinger", call => \&needsbuild); hook(type => "preprocess", id => "ping", call => \&preprocess); hook(type => "delete", id => "pinger", call => \&ping); - hook(type => "change", id => "pinger", call => \&ping); + hook(type => "rendered", id => "pinger", call => \&ping); } sub getsetup () { @@ -45,6 +45,7 @@ sub needsbuild (@) { } } } + return $needsbuild; } sub preprocess (@) { @@ -66,18 +67,19 @@ sub ping { if (! $pinged && %pages) { $pinged=1; + eval q{use Net::INET6Glue::INET_is_INET6}; # may not be available + my $ua; - eval q{use LWPx::ParanoidAgent}; - if (!$@) { - $ua=LWPx::ParanoidAgent->new; - } - else { - eval q{use LWP}; - if ($@) { - debug(gettext("LWP not found, not pinging")); - return; - } - $ua=LWP::UserAgent->new; + eval { + # We pass the for_url parameter, even though it's + # undef, because that will make sure we crash if used + # with an older IkiWiki.pm that didn't automatically + # try to use LWPx::ParanoidAgent. + $ua=useragent(for_url => undef); + }; + if ($@) { + debug(gettext("LWP not found, not pinging").": $@"); + return; } $ua->timeout($config{pinger_timeout} || 15); @@ -105,8 +107,10 @@ sub ping { # only ping when a page was changed, so a ping loop # will still be avoided. next if $url=~/^\Q$config{cgiurl}\E/; + my $local_cgiurl = IkiWiki::cgiurl(); + next if $url=~/^\Q$local_cgiurl\E/; - $ua->head($url); + $ua->get($url); } exit 0;