[prev in list] [next in list] [prev in thread] [next in thread] 

List:       squirrelmail-cvs
Subject:    [SM-CVS] SF.net SVN: squirrelmail: [13065]
From:       pdontthink () users ! sourceforge ! net
Date:       2008-04-25 22:01:46
Message-ID: E1JpVzG-0006Rg-Rd () sc8-pr-svn2 ! sourceforge ! net
[Download RAW message or body]

Revision: 13065
          http://squirrelmail.svn.sourceforge.net/squirrelmail/?rev=13065&view=rev
Author:   pdontthink
Date:     2008-04-25 15:01:46 -0700 (Fri, 25 Apr 2008)

Log Message:
-----------
Don't open multiple IMAP connections when building reply headers during send

Modified Paths:
--------------
    branches/SM-1_4-STABLE/squirrelmail/class/deliver/Deliver.class.php
    branches/SM-1_4-STABLE/squirrelmail/src/compose.php

Modified: branches/SM-1_4-STABLE/squirrelmail/class/deliver/Deliver.class.php
===================================================================
--- branches/SM-1_4-STABLE/squirrelmail/class/deliver/Deliver.class.php	2008-04-25 \
                21:59:00 UTC (rev 13064)
+++ branches/SM-1_4-STABLE/squirrelmail/class/deliver/Deliver.class.php	2008-04-25 \
22:01:46 UTC (rev 13065) @@ -56,13 +56,24 @@
      *                               can be passed in here and used in
      *                               an overloaded version of this method
      *                               if needed.
+     * @param resource $imap_stream  If there is an open IMAP stream in 
+     *                               the caller's context, it should be
+     *                               passed in here.  This is OPTIONAL,
+     *                               as one will be created if not given,
+     *                               but as some IMAP servers may baulk
+     *                               at opening more than one connection
+     *                               at a time, the caller should always
+     *                               abide if possible.  Currently, this
+     *                               stream is only used when $reply_id
+     *                               is also non-zero, but that is subject
+     *                               to change.
      *
      * @return integer The number of bytes written (or that would have been
      *                 written) to the output stream.
      *
      */
     function mail(&$message, $stream=false, $reply_id=0, $reply_ent_id=0, 
-                  $extra=NULL) {
+                  $extra=NULL, $imap_stream=NULL) {
 
         $rfc822_header = &$message->rfc822_header;
 
@@ -81,13 +92,28 @@
             global $imapConnection, $username, $key, $imapServerAddress, 
                    $imapPort, $mailbox;
 
-            if (!is_resource($imapConnection))
-                $imapConnection = sqimap_login($username, $key, 
+            // try our best to use an existing IMAP handle
+            //
+            $close_imap_stream = FALSE;
+            if (is_resource($imap_stream)) {
+                $my_imap_stream = $imap_stream;
+
+            } else if (is_resource($imapConnection)) {
+                $my_imap_stream = $imapConnection;
+
+            } else {
+                $close_imap_stream = TRUE;
+                $my_imap_stream = sqimap_login($username, $key,
                                                $imapServerAddress, $imapPort, 0);
+            } 
 
-            sqimap_mailbox_select($imapConnection, $mailbox);
-            $reply_message = sqimap_get_message($imapConnection, $reply_id, \
$mailbox); +            sqimap_mailbox_select($my_imap_stream, $mailbox);
+            $reply_message = sqimap_get_message($my_imap_stream, $reply_id, \
$mailbox);  
+            if ($close_imap_stream) {
+                sqimap_logout($my_imap_stream);
+            }
+
             if ($reply_ent_id) {
                 /* redefine the messsage in case of message/rfc822 */
                 $reply_message = $message->getEntity($reply_ent_id);

Modified: branches/SM-1_4-STABLE/squirrelmail/src/compose.php
===================================================================
--- branches/SM-1_4-STABLE/squirrelmail/src/compose.php	2008-04-25 21:59:00 UTC (rev \
                13064)
+++ branches/SM-1_4-STABLE/squirrelmail/src/compose.php	2008-04-25 22:01:46 UTC (rev \
13065) @@ -1652,7 +1652,7 @@
         if (($fld_sent && $svr_allow_sent && !$lcl_allow_sent) || ($fld_sent && \
                $lcl_allow_sent)) {
             require_once(SM_PATH . 'class/deliver/Deliver_IMAP.class.php');
             $imap_deliver = new Deliver_IMAP();
-            $imap_deliver->mail($composeMessage, $imap_stream, $reply_id, \
$reply_ent_id, $sent_folder); +            $imap_deliver->mail($composeMessage, \
$imap_stream, $reply_id, $reply_ent_id, $sent_folder, $imap_stream);  unset \
($imap_deliver);  }
         $composeMessage->purgeAttachments();


This was sent by the SourceForge.net collaborative development platform, the world's \
largest Open Source development site.

-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
-----
squirrelmail-cvs mailing list
List address: squirrelmail-cvs@lists.sourceforge.net
List info (subscribe/unsubscribe/change options): \
                https://lists.sourceforge.net/lists/listinfo/squirrelmail-cvs
Repository: http://squirrelmail.org/svn


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic