- Speed up raw message body handling (call FETCH only once for the whole message insteade of twice for headers and body)

release-0.6
alecpl 16 years ago
parent 4e5b11adfc
commit 322b79db06

@ -4,6 +4,7 @@ CHANGELOG RoundCube Webmail
2008/11/19 (alec) 2008/11/19 (alec)
---------- ----------
- Fix handling of some malformed messages (#1484438) - Fix handling of some malformed messages (#1484438)
- Speed up raw message body handling
2008/11/15 (alec) 2008/11/15 (alec)
---------- ----------

@ -1436,10 +1436,7 @@ class rcube_imap
if (!($msg_id = $this->_uid2id($uid))) if (!($msg_id = $this->_uid2id($uid)))
return FALSE; return FALSE;
$body = iil_C_FetchPartHeader($this->conn, $this->mailbox, $msg_id, NULL); return iil_C_HandlePartBody($this->conn, $this->mailbox, $msg_id);
$body .= iil_C_HandlePartBody($this->conn, $this->mailbox, $msg_id, NULL, 1);
return $body;
} }
@ -1470,8 +1467,6 @@ class rcube_imap
if (!($msg_id = $this->_uid2id($uid))) if (!($msg_id = $this->_uid2id($uid)))
return FALSE; 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); iil_C_HandlePartBody($this->conn, $this->mailbox, $msg_id, NULL, 2);
} }

@ -71,6 +71,7 @@
- added BYE response simple support for endless loop prevention - added BYE response simple support for endless loop prevention
- added 3rd argument in iil_StartsWith* functions - added 3rd argument in iil_StartsWith* functions
- fix iil_C_FetchPartHeader() in some cases by use of iil_C_HandlePartBody() - 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); 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: /* modes:
1: return string (or write to $file pointer) 1: return string (or write to $file pointer)
2: print 2: print
@ -2384,9 +2385,6 @@ function iil_C_HandlePartBody(&$conn, $mailbox, $id, $part, $mode, $file=NULL) {
$fp = $conn->fp; $fp = $conn->fp;
$result = false; $result = false;
if (empty($part)) {
$part = 'TEXT';
}
if (iil_C_Select($conn, $mailbox)) { if (iil_C_Select($conn, $mailbox)) {
$reply_key = '* ' . $id; $reply_key = '* ' . $id;

Loading…
Cancel
Save