X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/1ca191b5707ef38af5cbe196e314d57cd5c8c065..766311f45b4351488d7dad519a6471094a58da16:/IkiWiki/Plugin/pinger.pm?ds=sidebyside

diff --git a/IkiWiki/Plugin/pinger.pm b/IkiWiki/Plugin/pinger.pm
index 4a8088661..b2d54af8a 100644
--- a/IkiWiki/Plugin/pinger.pm
+++ b/IkiWiki/Plugin/pinger.pm
@@ -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,10 +67,12 @@ 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;
+			$ua=LWPx::ParanoidAgent->new(agent => $config{useragent});
 		}
 		else {
 			eval q{use LWP};
@@ -77,7 +80,7 @@ sub ping {
 				debug(gettext("LWP not found, not pinging"));
 				return;
 			}
-			$ua=LWP::UserAgent->new;
+			$ua=useragent();
 		}
 		$ua->timeout($config{pinger_timeout} || 15);
 		
@@ -105,8 +108,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;