diff --git a/plugins/libkolab/README b/plugins/libkolab/README index a16250f1..a60d5487 100644 --- a/plugins/libkolab/README +++ b/plugins/libkolab/README @@ -12,5 +12,9 @@ REQUIREMENTS * libkolabxml PHP bindings - kolabformat.so loaded into PHP - kolabformat.php placed somewhere in the include_path -* Horde Kolab_Format package and all of its dependencies +* PEAR: HTTP/Request2 +* PEAR: Net/URL2 +* Optional for old format support: + Horde Kolab_Format package and all of its dependencies + which are at least Horde_(Browser,DOM,NLS,String,Utils) diff --git a/plugins/libkolab/lib/kolab_storage_folder.php b/plugins/libkolab/lib/kolab_storage_folder.php index 6c4b4010..1fc84cf5 100644 --- a/plugins/libkolab/lib/kolab_storage_folder.php +++ b/plugins/libkolab/lib/kolab_storage_folder.php @@ -712,7 +712,7 @@ class kolab_storage_folder return true; } - if ($result && is_a($result, 'PEAR_Error')) { + if ($result && is_object($result) && is_a($result, 'PEAR_Error')) { return PEAR::raiseError(sprintf("Failed triggering folder %s. Error was: %s", $this->name, $result->getMessage())); } @@ -730,18 +730,23 @@ class kolab_storage_folder */ private function trigger_url($url, $auth_user = null, $auth_passwd = null) { - require_once('HTTP/Request.php'); + require_once('HTTP/Request2.php'); - $request = new HTTP_Request($url); + try { + $request = new HTTP_Request2($url); - // set authentication credentials - if ($auth_user && $auth_passwd) - $request->setBasicAuth($auth_user, $auth_passwd); + // set authentication credentials + if ($auth_user && $auth_passwd) + $request->setAuth($auth_user, $auth_passwd); - $result = $request->sendRequest(true); - // rcube::write_log('trigger', $request->getResponseBody()); + $result = $request->send(); + // rcube::write_log('trigger', $result->getBody()); + } + catch (Exception $e) { + return PEAR::raiseError($e->getMessage()); + } - return $result; + return true; }