program/include/rcmail.php | ●●●●● patch | view | raw | blame | history | |
program/include/rcube_imap.php | ●●●●● patch | view | raw | blame | history | |
program/include/rcube_imap_generic.php | ●●●●● patch | view | raw | blame | history |
program/include/rcmail.php
@@ -503,7 +503,7 @@ 'auth_method' => $this->config->get('imap_auth_type', 'check'), 'auth_cid' => $this->config->get('imap_auth_cid'), 'auth_pw' => $this->config->get('imap_auth_pw'), 'debug_mode' => (bool) $this->config->get('imap_debug', 0), 'debug' => (bool) $this->config->get('imap_debug', 0), 'force_caps' => (bool) $this->config->get('imap_force_caps'), 'timeout' => (int) $this->config->get('imap_timeout', 0), ); 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 program/include/rcube_imap_generic.php
@@ -109,6 +109,8 @@ private $prefs; private $cmd_tag; private $cmd_num = 0; private $_debug = false; private $_debug_handler = false; const ERROR_OK = 0; const ERROR_NO = -1; @@ -142,8 +144,8 @@ if (!$this->fp) return false; if (!empty($this->prefs['debug_mode'])) { write_log('imap', 'C: '. rtrim($string)); if ($this->_debug) { $this->debug('C: '. rtrim($string)); } $res = fwrite($this->fp, $string . ($endln ? "\r\n" : '')); @@ -231,8 +233,8 @@ $this->fp = null; break; } if (!empty($this->prefs['debug_mode'])) { write_log('imap', 'S: '. rtrim($buffer)); if ($this->_debug) { $this->debug('S: '. rtrim($buffer)); } $line .= $buffer; } while ($buffer[strlen($buffer)-1] != "\n"); @@ -268,8 +270,8 @@ while ($len < $bytes && !feof($this->fp)) { $d = fread($this->fp, $bytes-$len); if (!empty($this->prefs['debug_mode'])) { write_log('imap', 'S: '. $d); if ($this->_debug) { $this->debug('S: '. $d); } $data .= $d; $data_len = strlen($data); @@ -686,8 +688,8 @@ $line = trim(fgets($this->fp, 8192)); if ($this->prefs['debug_mode'] && $line) { write_log('imap', 'S: '. $line); if ($this->_debug && $line) { $this->debug('S: '. $line); } // Connected to wrong port or connection error? @@ -3238,4 +3240,35 @@ return strtr($string, array('\\"'=>'"', '\\\\' => '\\')); } /** * Set the value of the debugging flag. * * @param boolean $debug New value for the debugging flag. * * @access public * @since 0.5-stable */ function setDebug($debug, $handler = null) { $this->_debug = $debug; $this->_debug_handler = $handler; } /** * Write the given debug text to the current debug output handler. * * @param string $message Debug mesage text. * * @access private * @since 0.5-stable */ private function debug($message) { if ($this->_debug_handler) { call_user_func_array($this->_debug_handler, array(&$this, $message)); } else { echo "DEBUG: $message\n"; } } }