From d559cba5f7b92f152dd0330e2870d5512cd34e51 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Tue, 07 Jul 2009 12:38:31 -0400
Subject: [PATCH] - Added 'imap_debug' option, described 'sql_debug' option in config file

---
 CHANGELOG                      |    1 +
 program/include/rcube_mdb2.php |    4 +---
 program/include/rcmail.php     |    1 +
 program/lib/imap.inc           |   17 ++++++++++++++---
 config/main.inc.php.dist       |    7 ++++++-
 5 files changed, 23 insertions(+), 7 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index b98c2b2..f79862b 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
 CHANGELOG RoundCube Webmail
 ===========================
 
+- Added 'imap_debug' option
 - Support strftime's format modifiers in date_* options (#1484806)
 - Support %h variable in 'smtp_server' option (#1485766)
 - Show SMTP errors in browser (#1485927)
diff --git a/config/main.inc.php.dist b/config/main.inc.php.dist
index d773720..c60307d 100644
--- a/config/main.inc.php.dist
+++ b/config/main.inc.php.dist
@@ -14,7 +14,6 @@
 
 $rcmail_config = array();
 
-
 // system error reporting: 1 = log; 2 = report (not implemented yet), 4 = show, 8 = trace
 $rcmail_config['debug_level'] = 1;
 
@@ -125,6 +124,12 @@
 // Log sent messages
 $rcmail_config['smtp_log'] = TRUE;
 
+// Log SQL queries to <log_dir>/sql or to syslog
+$rcmail_config['sql_debug'] = false;
+
+// Log IMAP conversation to <log_dir>/imap or to syslog
+$rcmail_config['imap_debug'] = false;
+
 // How many seconds must pass between emails sent by a user
 $rcmail_config['sendmail_delay'] = 0;
 
diff --git a/program/include/rcmail.php b/program/include/rcmail.php
index 22ec20b..65bac38 100644
--- a/program/include/rcmail.php
+++ b/program/include/rcmail.php
@@ -366,6 +366,7 @@
       'imap' => $this->config->get('imap_auth_type', 'check'),
       'delimiter' => isset($_SESSION['imap_delimiter']) ? $_SESSION['imap_delimiter'] : $this->config->get('imap_delimiter'),
       'rootdir' => isset($_SESSION['imap_root']) ? $_SESSION['imap_root'] : $this->config->get('imap_root'),
+      'debug_mode' => (bool) $this->config->get('imap_debug', 0),
     );
 
     $this->imap->set_options($options);
diff --git a/program/include/rcube_mdb2.php b/program/include/rcube_mdb2.php
index faf6535..a83b463 100644
--- a/program/include/rcube_mdb2.php
+++ b/program/include/rcube_mdb2.php
@@ -701,8 +701,6 @@
   {
     $debug_output = $scope . '('.$db->db_index.'): ';
     $debug_output .= $message . $db->getOption('log_line_break');
-    write_log('sqllog', $debug_output);
+    write_log('sql', $debug_output);
   }
 }
-
-
diff --git a/program/lib/imap.inc b/program/lib/imap.inc
index 7b40c02..a8f858e 100644
--- a/program/lib/imap.inc
+++ b/program/lib/imap.inc
@@ -197,7 +197,11 @@
 }
 
 function iil_PutLine($fp, $string, $endln=true) {
-//      console('C: '. rtrim($string));
+	global $my_prefs;
+	
+	if(!empty($my_prefs['debug_mode']))
+    		write_log('imap', 'C: '. rtrim($string));
+	
         return fputs($fp, $string . ($endln ? "\r\n" : ''));
 }
 
@@ -225,6 +229,8 @@
 }
 
 function iil_ReadLine($fp, $size=1024) {
+	global $my_prefs;
+	
 	$line = '';
 
 	if (!$fp) {
@@ -240,7 +246,8 @@
     		if ($buffer === false) {
         		break;
     		}
-//		console('S: '. chop($buffer));
+		if(!empty($my_prefs['debug_mode']))
+			write_log('imap', 'S: '. chop($buffer));
     		$line .= $buffer;
 	} while ($buffer[strlen($buffer)-1] != "\n");
 	
@@ -265,6 +272,7 @@
 }
 
 function iil_ReadBytes($fp, $bytes) {
+	global $my_prefs;
 	$data = '';
 	$len  = 0;
 	do {
@@ -273,7 +281,8 @@
 		if ($len == strlen($data)) {
     		        break; //nothing was read -> exit to avoid apache lockups
     		}
-//		console('[...] '. $d);
+		if(!empty($my_prefs['debug_mode']))
+			write_log('imap', 'S: '. $d);
     		$len = strlen($data);
 	} while ($len < $bytes);
 	
@@ -553,6 +562,8 @@
     				$my_prefs['rootdir'] = $optval;
 			} else if ($optkey == 'delimiter') {
     				$my_prefs['delimiter'] = $optval;
+			} else if ($optkey == 'debug_mode') {
+    				$my_prefs['debug_mode'] = $optval;
 			}
 		}
 	}

--
Gitblit v1.9.1