handle non-responsive agents more politely
authorDaniel Kahn Gillmor <dkg@fifthhorseman.net>
Mon, 18 Oct 2010 05:12:11 +0000 (01:12 -0400)
committerDaniel Kahn Gillmor <dkg@fifthhorseman.net>
Mon, 18 Oct 2010 05:12:11 +0000 (01:12 -0400)
Crypt/Monkeysphere/MSVA/Client.pm
msva-query-agent

index 0d91aadd0bd8fbf77bb4efffe5be0bc753ab0007..8b6e5148b548b2b46e16df13b72451ad339d036e 100644 (file)
     my $response = $ua->request($request);
 
     my $status = $response->status_line;
-    my $ret = from_json($response->content);
+    my $ret;
+    if ($status eq '200 OK') {
+      $ret = from_json($response->content);
+    }
 
     return $status, $ret;
   }
index 846d27d210f4aaf9596e87b1473df30328826abd..1c77282701e2cbda7eaa2101d71a12d7196688df 100755 (executable)
@@ -35,15 +35,14 @@ my $pkcdata = do {
 my ($status,$ret) = Crypt::Monkeysphere::MSVA::Client->query_agent($context,$peer,$pkctype, $pkcdata, $ENV{MONKEYSPHERE_VALIDATION_AGENT_SOCKET});
 
 msvalog('info', "status: %s\n", $status);
-msvalog('info', "valid: %s\n", $ret->{valid});
-msvalog('info', "message: %s\n", $ret->{message});
-
-if ($ret->{valid}) {
-    exit 0;
-}
-else {
-    exit 1;
+if (defined $ret) {
+  msvalog('info', "valid: %s\n", $ret->{valid});
+  msvalog('fatal', "message: %s\n", $ret->{message});
+  exit 0
+    if ($ret->{valid});
 }
+exit 1;
+
 __END__
 
 =head1 NAME