Wrong variable name used
[squirrelmail.git] / functions / imap_general.php
index 80d40d1270710330e92528f1486b674db42f095e..8d6d27ee218abf35964e7e5f28e610fc48636466 100755 (executable)
@@ -66,7 +66,7 @@ function sqimap_run_command_list ($imap_stream, $query, $handle_errors, &$respon
         $string = "<b><font color=\"$color[2]\">\n" .
                 _("ERROR: No available IMAP stream.") .
                 "</b></font>\n";
-        error_box($string,$color);
+        error_box($string);
         return false;
     }
 }
@@ -116,7 +116,7 @@ function sqimap_run_command ($imap_stream, $query, $handle_errors, &$response,
         $string = "<b><font color=\"$color[2]\">\n" .
                 _("ERROR: No available IMAP stream.") .
                 "</b></font>\n";
-        error_box($string,$color);
+        error_box($string);
         return false;
     }
 }
@@ -314,7 +314,7 @@ function sqimap_fread($imap_stream,$iSize,$filter=false,
  */
 function sqimap_read_data_list($imap_stream, $tag, $handle_errors,
           &$response, &$message, $query = '') {
-    global $color, $squirrelmail_language;
+    global $color, $oTemplate, $squirrelmail_language;
     set_up_language($squirrelmail_language);
     $string = "<b><font color=\"$color[2]\">\n" .
         _("ERROR: Bad function call.") .
@@ -326,8 +326,8 @@ function sqimap_read_data_list($imap_stream, $tag, $handle_errors,
           'sqimap_run_command or sqimap_run_command_list instead<br /><br />'.
           'The following query was issued:<br />'.
            htmlspecialchars($query) . '<br />' . "</font><br />\n";
-    error_box($string,$color);
-    echo '</body></html>';
+    error_box($string);
+    $oTemplate->display('footer.tpl');
     exit;
 }
 
@@ -359,7 +359,7 @@ function sqimap_error_box($title, $query = '', $message_title = '', $message = '
     $string .= "</font><br />\n";
     if ($link != '')
         $string .= $link;
-    error_box($string,$color);
+    error_box($string);
 }
 
 /**
@@ -769,7 +769,7 @@ function sqimap_login ($username, $password, $imap_server_address, $imap_port, $
     }
 
     if (!isset($sqimap_capabilities)) {
-        sqgetglobalvar('sqimap_capabilities' , $capability , SQ_SESSION );
+        sqgetglobalvar('sqimap_capabilities' , $sqimap_capabilities , SQ_SESSION );
     }
 
     $host = $imap_server_address;
@@ -835,7 +835,7 @@ function sqimap_login ($username, $password, $imap_server_address, $imap_port, $
          *
          **/
         $tag=sqimap_session_id(false);
-        $sasl = (isset($capability['SASL-IR']) && $capability['SASL-IR']) ? true : false;
+        $sasl = (isset($sqimap_capabilities['SASL-IR']) && $sqimap_capabilities['SASL-IR']) ? true : false;
         $auth = base64_encode("$username\0$username\0$password");
         if ($sasl) {
             // IMAP Extension for SASL Initial Client Response
@@ -878,7 +878,7 @@ function sqimap_login ($username, $password, $imap_server_address, $imap_port, $
                         $string .= htmlspecialchars($line) . "<br />\n";
                     }
                 }
-                error_box($string,$color);
+                error_box($string);
                 exit;
             } else {
                 /*
@@ -954,9 +954,18 @@ function sqimap_capability($imap_stream, $capability='', $bUseCache=true) {
         for ($i=2; $i < count($c); $i++) {
             $cap_list = explode('=', $c[$i]);
             if (isset($cap_list[1])) {
+                if(isset($sqimap_capabilities[trim($cap_list[0])]) &&
+                 !is_array($sqimap_capabilities[trim($cap_list[0])])) {
+                    // Remove array key that was added in 'else' block below
+                    // This is to accomodate for capabilities like:
+                    // SORT SORT=MODSEQ
+                    unset($sqimap_capabilities[trim($cap_list[0])]);
+                }
                 $sqimap_capabilities[trim($cap_list[0])][] = $cap_list[1];
             } else {
-                $sqimap_capabilities[trim($cap_list[0])] = TRUE;
+                if(!isset($sqimap_capabilities[trim($cap_list[0])])) {
+                    $sqimap_capabilities[trim($cap_list[0])] = TRUE;
+                }
             }
         }
     }
@@ -1297,5 +1306,3 @@ function map_yp_alias($username) {
    $yp = `ypmatch $username aliases`;
    return chop(substr($yp, strlen($username)+1));
 }
-
-?>
\ No newline at end of file