From 322b79db06cfd0d9a0ca5c63536c36265d5ce7d2 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Thu, 20 Nov 2008 03:46:59 -0500
Subject: [PATCH] - Speed up raw message body handling (call FETCH only once for the whole message insteade of twice for headers and body)
---
CHANGELOG | 1 +
program/include/rcube_imap.php | 7 +------
program/lib/imap.inc | 6 ++----
3 files changed, 4 insertions(+), 10 deletions(-)
diff --git a/CHANGELOG b/CHANGELOG
index 8a63792..3509733 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -4,6 +4,7 @@
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 9b50702..856858b 100644
--- a/program/include/rcube_imap.php
+++ b/program/include/rcube_imap.php
@@ -1436,10 +1436,7 @@
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 @@
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 0f540dd..65cc5c6 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 @@
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 @@
$fp = $conn->fp;
$result = false;
- if (empty($part)) {
- $part = 'TEXT';
- }
if (iil_C_Select($conn, $mailbox)) {
$reply_key = '* ' . $id;
--
Gitblit v1.9.1