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: $@";
}
}
}
* Fix support for --pingurl at the command line.
* Fix a subtle bug in will_render that broke some builds, by only clearing
items from renderedfiles the first time per build.
+ * Wrap entire technortati ping operation in an eval to catch all possible
+ failure modes, after I observed a simple ->value crashing ikiwiki when
+ a ping failed.
- -- Joey Hess <joeyh@debian.org> Mon, 16 Oct 2006 14:50:13 -0400
+ -- Joey Hess <joeyh@debian.org> Mon, 16 Oct 2006 15:02:39 -0400
ikiwiki (1.29) unstable; urgency=low