X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=lib%2Fping.php;h=abf1c4048edddb5a6c3f1bcbd783d75d9b4c9abe;hb=54de6d3260e7fde77eb86079bd67a815930b8b43;hp=735af9ef134ecccb2ad55a089f10ba7c3dd37cce;hpb=4de09d6bd4eab3259d42fa846e4dd31f2516a038;p=quix0rs-gnu-social.git diff --git a/lib/ping.php b/lib/ping.php index 735af9ef13..abf1c4048e 100644 --- a/lib/ping.php +++ b/lib/ping.php @@ -27,7 +27,14 @@ function ping_broadcast_notice($notice) { # Array of servers, URL => type $notify = common_config('ping', 'notify'); - $profile = $notice->getProfile(); + try { + $profile = $notice->getProfile(); + } catch (Exception $e) { + // @todo: distinguish the 'broken notice/profile' case from more general + // transitory errors. + common_log(LOG_ERR, "Exception getting notice profile: " . $e->getMessage()); + return true; + } $tags = ping_notice_tags($notice); foreach ($notify as $notify_url => $type) { @@ -45,7 +52,15 @@ function ping_broadcast_notice($notice) { $tags)); $request = HTTPClient::start(); - $httpResponse = $request->post($notify_url, array('Content-Type: text/xml'), $req); + $request->setConfig('connect_timeout', common_config('ping', 'timeout')); + $request->setConfig('timeout', common_config('ping', 'timeout')); + try { + $httpResponse = $request->post($notify_url, array('Content-Type: text/xml'), $req); + } catch (Exception $e) { + common_log(LOG_ERR, + "Exception pinging $notify_url: " . $e->getMessage()); + continue; + } if (!$httpResponse || mb_strlen($httpResponse->getBody()) == 0) { common_log(LOG_WARNING,