Detect untagged BYE responses in case the connection is terminated.
authorstekkel <stekkel@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Fri, 14 May 2004 18:37:40 +0000 (18:37 +0000)
committerstekkel <stekkel@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Fri, 14 May 2004 18:37:40 +0000 (18:37 +0000)
git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@7458 7612ce4b-ef26-0410-bec9-ea0150e637f0

functions/imap_general.php

index abb2228b25f4a3a3199826d786c8cb2945cfff56..b67093d54b7885966c2a9e9d71c0eaf155e32932 100755 (executable)
@@ -469,9 +469,14 @@ function sqimap_retrieve_imap_response($imap_stream, $tag, $handle_errors,
     } // end while
     
     /* error processing in case $read is false */
-    if ($read === false) {
-        unset($data);
-        if ($handle_errors) {
+    if ($read === false && $handle_errors) {
+        // try to retrieve an untagged bye respons from the results
+        $sResponse = array_pop($data);
+        if ($sResponse != NULL && strpos($sResponse,'* BYE')) {
+            $message[$tag] = substr($sResponse,5);
+            $response[$tag] = 'BYE';
+        } else {
+            unset($data); 
             sqimap_error_box(_("ERROR : Connection dropped by imap-server."), $query);
             exit;
         }