summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoralecpl <alec@alec.pl>2008-11-20 08:46:59 +0000
committeralecpl <alec@alec.pl>2008-11-20 08:46:59 +0000
commit322b79db06cfd0d9a0ca5c63536c36265d5ce7d2 (patch)
tree6c225189c680f85d4852cf7a9e7abe8a4e1fb4b5
parent4e5b11adfc2eaca592d56423f5903c6b4c554499 (diff)
- Speed up raw message body handling (call FETCH only once for the whole message insteade of twice for headers and body)
-rw-r--r--CHANGELOG1
-rw-r--r--program/include/rcube_imap.php7
-rw-r--r--program/lib/imap.inc6
3 files changed, 4 insertions, 10 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 8a6379253..350973366 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -4,6 +4,7 @@ CHANGELOG RoundCube Webmail
2008/11/19 (alec)
----------
- Fix handling of some malformed messages (#1484438)
+- Speed up raw message body handling
2008/11/15 (alec)
----------
diff --git a/program/include/rcube_imap.php b/program/include/rcube_imap.php
index 9b507028c..856858b78 100644
--- a/program/include/rcube_imap.php
+++ b/program/include/rcube_imap.php
@@ -1436,10 +1436,7 @@ class rcube_imap
if (!($msg_id = $this->_uid2id($uid)))
return FALSE;
- $body = iil_C_FetchPartHeader($this->conn, $this->mailbox, $msg_id, NULL);
- $body .= iil_C_HandlePartBody($this->conn, $this->mailbox, $msg_id, NULL, 1);
-
- return $body;
+ return iil_C_HandlePartBody($this->conn, $this->mailbox, $msg_id);
}
@@ -1470,8 +1467,6 @@ class rcube_imap
if (!($msg_id = $this->_uid2id($uid)))
return FALSE;
- print iil_C_FetchPartHeader($this->conn, $this->mailbox, $msg_id, NULL);
- flush();
iil_C_HandlePartBody($this->conn, $this->mailbox, $msg_id, NULL, 2);
}
diff --git a/program/lib/imap.inc b/program/lib/imap.inc
index 0f540dde5..65cc5c69f 100644
--- a/program/lib/imap.inc
+++ b/program/lib/imap.inc
@@ -71,6 +71,7 @@
- added BYE response simple support for endless loop prevention
- added 3rd argument in iil_StartsWith* functions
- fix iil_C_FetchPartHeader() in some cases by use of iil_C_HandlePartBody()
+ - allow iil_C_HandlePartBody() to fetch whole message
********************************************************/
@@ -2375,7 +2376,7 @@ function iil_C_FetchPartHeader(&$conn, $mailbox, $id, $part) {
return iil_C_HandlePartBody(&$conn, $mailbox, $id, $part, 1);
}
-function iil_C_HandlePartBody(&$conn, $mailbox, $id, $part, $mode, $file=NULL) {
+function iil_C_HandlePartBody(&$conn, $mailbox, $id, $part='', $mode=1, $file=NULL) {
/* modes:
1: return string (or write to $file pointer)
2: print
@@ -2384,9 +2385,6 @@ function iil_C_HandlePartBody(&$conn, $mailbox, $id, $part, $mode, $file=NULL) {
$fp = $conn->fp;
$result = false;
- if (empty($part)) {
- $part = 'TEXT';
- }
if (iil_C_Select($conn, $mailbox)) {
$reply_key = '* ' . $id;