From 16378fe3a255943c7b2f374443158670a0eedf86 Mon Sep 17 00:00:00 2001 From: alecpl Date: Mon, 3 May 2010 06:41:57 +0000 Subject: - preformance fix: don't load full folders list when checking for folder existance in sendmail.inc, use internal cache to make mailbox_exists() faster when called more than one time for the same folder --- program/include/rcube_imap.php | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'program/include') diff --git a/program/include/rcube_imap.php b/program/include/rcube_imap.php index 9db6427b2..6e4d9890e 100644 --- a/program/include/rcube_imap.php +++ b/program/include/rcube_imap.php @@ -2774,6 +2774,10 @@ class rcube_imap if ($mbox_name == 'INBOX') return true; + $key = $subscription ? 'subscribed' : 'existing'; + if (is_array($this->icache[$key]) && in_array($mbox_name, $this->icache[$key])) + return true; + if ($subscription) { $a_folders = $this->conn->listSubscribed($this->mod_mailbox(''), $mbox_name); } @@ -2782,6 +2786,7 @@ class rcube_imap } if (is_array($a_folders) && in_array($this->mod_mailbox($mbox_name), $a_folders)) { + $this->icache[$key][] = $mbox_name; return true; } } -- cgit v1.2.3