- foreach ($notify as $notify_url => $type) {
- switch ($type) {
- case 'xmlrpc':
- case 'extended':
- $req = xmlrpc_encode_request('weblogUpdates.ping',
- array($profile->nickname, # site name
- common_local_url('showstream',
- array('nickname' => $profile->nickname)),
- common_local_url('shownotice',
- array('notice' => $notice->id)),
- common_local_url('userrss',
- array('nickname' => $profile->nickname)),
- $tags));
-
- $request = new HTTPClient($notify_url, HTTP_Request2::METHOD_POST);
- $request->setHeader('Content-Type', 'text/xml');
- $request->setBody($req);
- $httpResponse = $request->send();
+ $request = HTTPClient::start();
+ $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;
+ }