From 6dc0269fcc9f11fbd53da1fb647237ab73cf394d Mon Sep 17 00:00:00 2001 From: thomascube <thomas@roundcube.net> Date: Mon, 03 Oct 2005 17:20:42 -0400 Subject: [PATCH] Make message caching configurable --- program/include/main.inc | 6 +++++- config/main.inc.php.dist | 4 ++++ program/include/rcube_imap.inc | 21 ++++++++++++++------- 3 files changed, 23 insertions(+), 8 deletions(-) diff --git a/config/main.inc.php.dist b/config/main.inc.php.dist index 6498e01..86f0778 100644 --- a/config/main.inc.php.dist +++ b/config/main.inc.php.dist @@ -18,6 +18,10 @@ // system error reporting: 1 = log; 2 = report (not implemented yet), 4 = show, 8 = trace $rcmail_config['debug_level'] = 5; +// enable caching of messages and mailbox data in the local database. +// this is recommended if the IMAP server does not run on the same machine +$rcmail_config['enable_caching'] = TRUE; + // automatically create a new user when log-in the first time // set to false if only registered users can use this service $rcmail_config['auto_create_user'] = TRUE; diff --git a/program/include/main.inc b/program/include/main.inc index 7b34bf6..7173917 100644 --- a/program/include/main.inc +++ b/program/include/main.inc @@ -132,9 +132,13 @@ function rcmail_imap_init($connect=FALSE) { global $CONFIG, $IMAP; - + $IMAP = new rcube_imap(); + // enable caching of imap data + if ($CONFIG['enable_caching']===TRUE) + $IMAP->set_caching(TRUE); + // set root dir from config if (strlen($CONFIG['imap_root'])) $IMAP->set_rootdir($CONFIG['imap_root']); diff --git a/program/include/rcube_imap.inc b/program/include/rcube_imap.inc index b5eba00..e743214 100644 --- a/program/include/rcube_imap.inc +++ b/program/include/rcube_imap.inc @@ -35,7 +35,7 @@ var $mailbox = 'INBOX'; var $list_page = 1; var $page_size = 10; - var $cacheing_enabled = FALSE; + var $caching_enabled = FALSE; var $default_folders = array('inbox', 'drafts', 'sent', 'junk', 'trash'); var $cache = array(); var $cache_changes = array(); @@ -46,8 +46,7 @@ // PHP 5 constructor function __construct() { - if (function_exists('rcube_read_cache')) - $this->cacheing_enabled = TRUE; + } // PHP 4 compatibility @@ -681,14 +680,22 @@ /* -------------------------------- - * internal cacheing functions + * internal caching functions * --------------------------------*/ - + + + function set_caching($set) + { + if ($set && function_exists('rcube_read_cache')) + $this->caching_enabled = TRUE; + else + $this->caching_enabled = FALSE; + } function get_cache($key) { // read cache - if (!isset($this->cache[$key]) && $this->cacheing_enabled) + if (!isset($this->cache[$key]) && $this->caching_enabled) { $cache_data = rcube_read_cache('IMAP.'.$key); $this->cache[$key] = strlen($cache_data) ? unserialize($cache_data) : FALSE; @@ -708,7 +715,7 @@ function write_cache() { - if ($this->cacheing_enabled && $this->cache_changed) + if ($this->caching_enabled && $this->cache_changed) { foreach ($this->cache as $key => $data) { -- Gitblit v1.9.1