We are no longer offering accounts on this server. Consider https://gitlab.freedesktop.org/ as a place to host projects.

Commit b13f8df7 authored by mattl's avatar mattl

HTTPClient would return null instead of exception

This caused $response->isOK() tests to call a function on a non-existing object, causing all hell to break loose.
parent 87ae5292
...@@ -194,7 +194,7 @@ class HTTPClient extends HTTP_Request2 ...@@ -194,7 +194,7 @@ class HTTPClient extends HTTP_Request2
} }
$response = $client->get($url); $response = $client->get($url);
if (!$response->isOk()) { if (!$response->isOk()) {
// TRANS: Exception. %s is a profile URL. // TRANS: Exception. %s is the URL we tried to GET.
throw new Exception(sprintf(_m('Could not GET URL %s.'), $url), $response->getStatus()); throw new Exception(sprintf(_m('Could not GET URL %s.'), $url), $response->getStatus());
} }
return $response->getBody(); return $response->getBody();
...@@ -288,6 +288,10 @@ class HTTPClient extends HTTP_Request2 ...@@ -288,6 +288,10 @@ class HTTPClient extends HTTP_Request2
} }
} }
$response = $this->send(); $response = $this->send();
if (is_null($response)) {
// TRANS: Failed to retrieve a remote web resource, %s is the target URL.
throw new HTTP_Request2_Exception(sprintf(_m('HTTP request failed without response to URL: %s'), var_export($target, true)));
}
return $response; return $response;
} }
......
...@@ -96,11 +96,14 @@ class QueueMonitor ...@@ -96,11 +96,14 @@ class QueueMonitor
protected function pingHttp($target, $data) protected function pingHttp($target, $data)
{ {
$client = new HTTPClient(); $client = new HTTPClient();
$result = $client->post($target, array(), $data); try {
$result = $client->post($target, array(), $data);
if (!$result->isOk()) { if (!$result->isOk()) {
common_log(LOG_ERR, __METHOD__ . ' HTTP ' . $result->getStatus() . common_log(LOG_ERR, __METHOD__ . ' HTTP ' . $result->getStatus() . ': ' . $result->getBody());
': ' . $result->getBody()); }
} catch (HTTP_Request2_Exception $e) {
common_log(LOG_ERR, __METHOD__ . ' HTTP request generated PHP level error (check logs, could be DNS failure etc.). URL: '.var_export($target,true));
} }
} }
......
...@@ -58,9 +58,14 @@ class DiscoveryHints { ...@@ -58,9 +58,14 @@ class DiscoveryHints {
{ {
$client = new HTTPClient(); $client = new HTTPClient();
$client->setHeader('Accept', 'text/html,application/xhtml+xml'); $client->setHeader('Accept', 'text/html,application/xhtml+xml');
$response = $client->get($url); try {
$response = $client->get($url);
if (!$response->isOk()) { if (!$response->isOk()) {
return null;
}
} catch (HTTP_Request2_Exception $e) {
// Any HTTPClient error that might've been thrown
return null; return null;
} }
......
...@@ -75,10 +75,14 @@ if (have_option('--verify')) { ...@@ -75,10 +75,14 @@ if (have_option('--verify')) {
print "Sending for verification to $url ...\n"; print "Sending for verification to $url ...\n";
$client = new HTTPClient(); $client = new HTTPClient();
$response = $client->post($url, array(), array('magic_env' => $envxml)); try {
$response = $client->post($url, array(), array('magic_env' => $envxml));
print $response->getStatus() . "\n\n"; print $response->getStatus() . "\n\n";
print $response->getBody() . "\n\n"; print $response->getBody() . "\n\n";
} catch (HTTP_Request2_Exception $e) {
print 'Failed POST to URL '.var_export($url, true).': '.$e->getMessage();
}
} }
if (have_option('--slap')) { if (have_option('--slap')) {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment