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.
This commit is contained in:
parent
87ae5292b8
commit
b13f8df79b
@ -194,7 +194,7 @@ class HTTPClient extends HTTP_Request2
|
||||
}
|
||||
$response = $client->get($url);
|
||||
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());
|
||||
}
|
||||
return $response->getBody();
|
||||
@ -288,6 +288,10 @@ class HTTPClient extends HTTP_Request2
|
||||
}
|
||||
}
|
||||
$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;
|
||||
}
|
||||
|
||||
|
@ -96,11 +96,14 @@ class QueueMonitor
|
||||
protected function pingHttp($target, $data)
|
||||
{
|
||||
$client = new HTTPClient();
|
||||
$result = $client->post($target, array(), $data);
|
||||
try {
|
||||
$result = $client->post($target, array(), $data);
|
||||
|
||||
if (!$result->isOk()) {
|
||||
common_log(LOG_ERR, __METHOD__ . ' HTTP ' . $result->getStatus() .
|
||||
': ' . $result->getBody());
|
||||
if (!$result->isOk()) {
|
||||
common_log(LOG_ERR, __METHOD__ . ' HTTP ' . $result->getStatus() . ': ' . $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 {
|
||||
{
|
||||
$client = new HTTPClient();
|
||||
$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;
|
||||
}
|
||||
|
||||
|
@ -75,10 +75,14 @@ if (have_option('--verify')) {
|
||||
print "Sending for verification to $url ...\n";
|
||||
|
||||
$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->getBody() . "\n\n";
|
||||
print $response->getStatus() . "\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')) {
|
||||
|
Loading…
Reference in New Issue
Block a user