]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki/Plugin/inline.pm
todo
[ikiwiki.git] / IkiWiki / Plugin / inline.pm
index 1ee79180c52fccc8f336c7f1dc7a6fdc02a2d919..075f70399bb46ed6fa8decd708399e606b60a515 100644 (file)
@@ -310,21 +310,28 @@ sub pingurl (@) { #{{{
                return;
        }
 
+       # TODO: daemonize here so slow pings don't slow down wiki updates
+
        foreach my $page (keys %toping) {
                my $title=pagetitle(basename($page));
                my $url="$config{url}/".htmlpage($page);
                foreach my $pingurl (@{$config{pingurl}}) {
-                       my $client = RPC::XML::Client->new($pingurl);
-                       my $req = RPC::XML::request->new('weblogUpdates.ping',
-                               $title, $url);
                        debug("Pinging $pingurl for $page");
-                       my $res = $client->send_request($req);
-                       if (! ref $res) {
-                               debug("Did not receive response to ping");
-                       }
-                       my $r=$res->value;
-                       if (! exists $r->{flerror} || $r->{flerror}) {
-                               debug("Ping rejected: ".(exists $r->{message} ? $r->{message} : "[unknown reason]"));
+                       eval {
+                               my $client = RPC::XML::Client->new($pingurl);
+                               my $req = RPC::XML::request->new('weblogUpdates.ping',
+                               $title, $url);
+                               my $res = $client->send_request($req);
+                               if (! ref $res) {
+                                       debug("Did not receive response to ping");
+                               }
+                               my $r=$res->value;
+                               if (! exists $r->{flerror} || $r->{flerror}) {
+                                       debug("Ping rejected: ".(exists $r->{message} ? $r->{message} : "[unknown reason]"));
+                               }
+                       };
+                       if ($@) {
+                               debug "Ping failed: $@";
                        }
                }
        }