possible fix for IE/SSL problem
[squirrelmail.git] / functions / imap_general.php
index f6c8e79b7a8c2dcceb37d1658e5cd1450b65a762..5e80c89cb8cfc8413fce3e81dd776c5fc42b9e30 100755 (executable)
@@ -18,7 +18,7 @@
 
       $counter = 0;
       do {
-          $data[$counter] = $read = fgets ($imap_stream, 4096);
+          $data[$counter] = $read = fgets ($imap_stream, 9096);
           if ($imap_general_debug) { echo "<small><tt><font color=cc0000>$read</font></tt></small><br>"; flush(); }
           $counter++;
       } while (! ereg("^$pre (OK|BAD|NO)(.*)$", $read, $regs));
 
       if ($handle_errors == true) {
          if ($response == "NO") {
-            set_up_language($squirrelmail_language);
-            echo "<br><b><font color=$color[2]>\n";
-            echo _("ERROR : Could not complete request.");
-            echo "</b><br>\n";
-            echo _("Reason Given: ");
-            echo $message . "</font><br>\n";
-            exit;
+            // ignore this error from m$ exchange, it is not fatal (aka bug)
+            if (!ereg("command resulted in",$message)) { 
+               set_up_language($squirrelmail_language);
+               echo "<br><b><font color=$color[2]>\n";
+               echo _("ERROR : Could not complete request.");
+               echo "</b><br>\n";
+               echo _("Reason Given: ");
+               echo $message . "</font><br>\n";
+               exit;
+            }
          } else if ($response == "BAD") {
             set_up_language($squirrelmail_language);
             echo "<br><b><font color=$color[2]>\n";
@@ -58,7 +61,8 @@
    function sqimap_login ($username, $password, $imap_server_address, $imap_port, $hide) {
       global $color, $squirrelmail_language, $HTTP_ACCEPT_LANGUAGE, $onetimepad;
 
-      $imap_stream = fsockopen ($imap_server_address, $imap_port, &$error_number, &$error_string);
+      $imap_stream = fsockopen ($imap_server_address, $imap_port,
+         &$error_number, &$error_string, 15);
       $server_info = fgets ($imap_stream, 1024);
       
       // Decrypt the password
@@ -74,7 +78,8 @@
          exit;
       }
 
-      fputs ($imap_stream, "a001 LOGIN \"$username\" \"$password\"\r\n");
+      fputs ($imap_stream, "a001 LOGIN \"" . quotemeta($username) . 
+         "\" \"" . quotemeta($password) . "\"\r\n");
       $read = sqimap_read_data ($imap_stream, "a001", false, $response, $message);
 
       /** If the connection was not successful, lets see why **/
@@ -179,8 +184,14 @@ function sqimap_capability($imap_stream, $capability) {
     **  Returns the delimeter between mailboxes:  INBOX/Test, or INBOX.Test... 
     ******************************************************************************/
 function sqimap_get_delimiter ($imap_stream = false) {
-       global $imap_general_debug;
-    global $sqimap_delimiter;
+   global $imap_general_debug;
+   global $sqimap_delimiter;
+   global $optional_delimiter;
+
+   /* Use configured delimiter if set */
+   if((!empty($optional_delimiter)) && $optional_delimiter != "detect") {
+      return $optional_delimiter;
+   }
 
        /* Do some caching here */
     if (!$sqimap_delimiter) {