From 7f1da4818efda0f4f0874f73c840ec46dc332223 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Thu, 23 Dec 2010 13:25:18 -0500
Subject: [PATCH] - Add debug handler support in rcube_imap_generic

---
 program/include/rcube_imap.php |   24 +++++++++++++++++-------
 1 files changed, 17 insertions(+), 7 deletions(-)

diff --git a/program/include/rcube_imap.php b/program/include/rcube_imap.php
index 5715459..02efaff 100644
--- a/program/include/rcube_imap.php
+++ b/program/include/rcube_imap.php
@@ -148,6 +148,9 @@
 
         $this->options['port'] = $port;
 
+        if ($this->options['debug'])
+            $this->conn->setDebug(true, array($this, 'debug_handler'));
+
         $attempt = 0;
         do {
             $data = rcmail::get_instance()->plugins->exec_hook('imap_connect',
@@ -223,7 +226,7 @@
      */
     function get_error_code()
     {
-        return ($this->conn) ? $this->conn->errornum : 0;
+        return $this->conn->errornum;
     }
 
 
@@ -234,7 +237,7 @@
      */
     function get_error_str()
     {
-        return ($this->conn) ? $this->conn->error : null;
+        return $this->conn->error;
     }
 
 
@@ -245,9 +248,6 @@
      */
     function get_response_code()
     {
-        if (!$this->conn)
-            return self::UNKNOWN;
-
         switch ($this->conn->resultcode) {
             case 'NOPERM':
                 return self::NOPERM;
@@ -278,7 +278,7 @@
      */
     function get_response_str()
     {
-        return ($this->conn) ? $this->conn->result : null;
+        return $this->conn->result;
     }
 
 
@@ -546,7 +546,7 @@
         $imap_shared    = $config->get('imap_ns_shared');
         $imap_delimiter = $config->get('imap_delimiter');
 
-        if (!$this->conn)
+        if (!$this->conn->connected())
             return;
 
         $ns = $this->conn->getNamespace();
@@ -4740,6 +4740,16 @@
         return $result;
     }
 
+
+    /**
+     * This is our own debug handler for the IMAP connection
+     * @access public
+     */
+    public function debug_handler(&$imap, $message)
+    {
+        write_log('imap', $message);
+    }
+
 }  // end class rcube_imap
 
 

--
Gitblit v1.9.1