plugins/calendar

Thomas Brüderli bruederli at kolabsys.com
Mon Jun 4 22:20:29 CEST 2012


 plugins/calendar/drivers/kolab/kolab_driver.php |   34 ++++++++++++++++--------
 1 file changed, 24 insertions(+), 10 deletions(-)

New commits:
commit 8cb599bd96850f28c60cb9015e7f44ff3eee4409
Author: Thomas Bruederli <bruederli at kolabsys.com>
Date:   Mon Jun 4 22:19:57 2012 +0200

    Replace deprecated PEAR::HTTP_Request with its successor HTTP_Request2 (#822)

diff --git a/plugins/calendar/drivers/kolab/kolab_driver.php b/plugins/calendar/drivers/kolab/kolab_driver.php
index d1ccb59..42d758c 100644
--- a/plugins/calendar/drivers/kolab/kolab_driver.php
+++ b/plugins/calendar/drivers/kolab/kolab_driver.php
@@ -907,7 +907,7 @@ class kolab_driver extends calendar_driver
   public function get_freebusy_list($email, $start, $end)
   {
     require_once('Horde/iCalendar.php');
-    require_once('HTTP/Request.php');
+    require_once('HTTP/Request2.php');
 
     if (empty($email)/* || $end < time()*/)
       return false;
@@ -920,17 +920,31 @@ class kolab_driver extends calendar_driver
       'OOF' => calendar::FREEBUSY_OOF);
 
     // ask kolab server first
-    $request = new HTTP_Request($url = rcube_kolab::get_freebusy_url($email));
-    $result = $request->sendRequest(true);
+    try {
+      $rcmail = rcube::get_instance();
+      $request = new HTTP_Request2(kolab_storage::get_freebusy_url($email));
+      $request->setConfig(array(
+        'store_body'       => true,
+        'follow_redirects' => true,
+        'ssl_verify_peer'  => $rcmail->config->get('kolab_ssl_verify_peer', true),
+      ));
+
+      $response = $request->send();
+
+      // authentication required
+      if ($response->getStatus() == 401) {
+        $request->setAuth($this->rc->user->get_username(), $this->rc->decrypt($_SESSION['password']));
+        $response = $request->send();
+      }
 
-    // authentication required
-    if (!PEAR::isError($result) && $request->getResponseCode() == 401) {
-        $request->setBasicAuth($this->rc->user->get_username(), $this->rc->decrypt($_SESSION['password']));
-        $result = $request->sendRequest(true);
-    }
+      if ($response->getStatus() == 200)
+        $fbdata = $response->getBody();
 
-    if (!PEAR::isError($result) && $request->getResponseCode() == 200)
-        $fbdata = $request->getResponseBody();
+      unset($request, $response);
+    }
+    catch (Exception $e) {
+      PEAR::raiseError("Error fetching free/busy information: " . $e->getMessage());
+    }
 
     // get free-busy url from contacts
     if (!$fbdata) {





More information about the commits mailing list