Add ability to return error string as well. Would be nice if we had an error code...
[squirrelmail.git] / src / redirect.php
index ac31a2c7e52f73129678255f3d2534f964b385d8..f48de676470d505576e098158a8006e27be26542 100644 (file)
@@ -70,7 +70,7 @@ if (!sqsession_is_registered('user_is_logged_in')) {
 
     /* regenerate the session id to avoid session hyijacking */
     sqsession_destroy();
-    sqsession_is_active();
+    @sqsession_is_active();
     session_regenerate_id();
     /**
      * The cookie part. session_start and session_regenerate_session normally set
@@ -106,6 +106,11 @@ if (!sqsession_is_registered('user_is_logged_in')) {
     sqsession_register($sqimap_capabilities, 'sqimap_capabilities');
     $delimiter = sqimap_get_delimiter ($imapConnection);
 
+    if (isset($sqimap_capabilities['NAMESPACE']) && $sqimap_capabilities['NAMESPACE'] == true) {
+        $namespace = sqimap_get_namespace($imapConnection);
+        sqsession_register($namespace, 'sqimap_namespace');
+    }
+
     sqimap_logout($imapConnection);
     sqsession_register($delimiter, 'delimiter');
 
@@ -143,13 +148,15 @@ $redirect_url = $location . '/webmail.php';
 
 if ( sqgetGlobalVar('session_expired_location', $session_expired_location, SQ_SESSION) ) {
     sqsession_unregister('session_expired_location');
-    $compose_new_win = getPref($data_dir, $username, 'compose_new_win', 0);
-    if ($compose_new_win) {
-        // do not prefix $location here because $session_expired_location is set to PHP_SELF
-        // of the last page
-        $redirect_url = $session_expired_location;
-    } elseif ( strpos($session_expired_location, 'webmail.php') === FALSE ) {
-        $redirect_url = $location.'/webmail.php?right_frame='.urldecode($session_expired_location);
+    if ( strpos($session_expired_location, 'compose.php') !== FALSE ) {
+        $compose_new_win = getPref($data_dir, $username, 'compose_new_win', 0);
+        if ($compose_new_win) {
+            // do not prefix $location here because $session_expired_location is set to PHP_SELF
+            // of the last page
+            $redirect_url = $session_expired_location;
+        } else {
+            $redirect_url = $location.'/webmail.php?right_frame='.urldecode($session_expired_location);
+        }
     }
     unset($session_expired_location);
 }