Ver código fonte

Merge branch 'trunk'

Andy 3 anos atrás
pai
commit
7222c8307f
1 arquivos alterados com 11 adições e 1 exclusões
  1. 11 1
      functions/imap_general.php

+ 11 - 1
functions/imap_general.php

@@ -979,6 +979,11 @@ function sqimap_login ($username, $password, $imap_server_address,
                     $read=sqimap_fgets($imap_stream);
                     $read=sqimap_fgets($imap_stream);
                 }
                 }
             }
             }
+            // IMAP server might return some untagged info before
+            // the tagged login command response - skip over that
+            while ($read[0] === '*') {
+                $read = sqimap_fgets($imap_stream);
+            }
             $results=explode(" ",$read,3);
             $results=explode(" ",$read,3);
             $response=$results[1];
             $response=$results[1];
             $message=$results[2];
             $message=$results[2];
@@ -1007,7 +1012,7 @@ function sqimap_login ($username, $password, $imap_server_address,
          * credentials and use that as the authorization identity.
          * credentials and use that as the authorization identity.
          */
          */
         $tag=sqimap_session_id(false);
         $tag=sqimap_session_id(false);
-        $sasl = (isset($sqimap_capabilities['SASL-IR']) && $sqimap_capabilities['SASL-IR']) ? true : false;
+        $sasl = sqimap_capability($imap_stream, 'SASL-IR');
         if(!empty($authz)) {
         if(!empty($authz)) {
             $auth = base64_encode("$username\0$authz\0$password");
             $auth = base64_encode("$username\0$authz\0$password");
         } else {
         } else {
@@ -1028,6 +1033,11 @@ function sqimap_login ($username, $password, $imap_server_address,
                 $read = sqimap_fgets($imap_stream);
                 $read = sqimap_fgets($imap_stream);
             }
             }
         }
         }
+        // IMAP server might return some untagged info before
+        // the tagged login command response - skip over that
+        while ($read[0] === '*') {
+            $read = sqimap_fgets($imap_stream);
+        }
         $results=explode(" ",$read,3);
         $results=explode(" ",$read,3);
         $response=$results[1];
         $response=$results[1];
         $message=$results[2];
         $message=$results[2];