* 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.
master
joey 2006-10-16 19:03:33 +00:00
parent b02bbe8253
commit 7c18261b80
2 changed files with 19 additions and 11 deletions

View File

@ -314,17 +314,22 @@ sub pingurl (@) { #{{{
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: $@";
}
}
}

5
debian/changelog vendored
View File

@ -7,8 +7,11 @@ ikiwiki (1.30) UNRELEASED; urgency=low
* 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