X-Git-Url: https://vcs.fsf.org/?p=squirrelmail.git;a=blobdiff_plain;f=src%2Fdownload.php;h=a90e97bec851143ef370f58eaecf690d90327cc2;hp=e7c2dc3611755e1ab912f152879365cd452aeb7d;hb=e4baf0ee0d63b4552db2964089bdf5e573afddfe;hpb=06783280842a90181b2e984bd8ea13e3b7466edb diff --git a/src/download.php b/src/download.php index e7c2dc36..a90e97be 100644 --- a/src/download.php +++ b/src/download.php @@ -133,6 +133,18 @@ if (strlen($filename) < 1) { $filename = $filename . '.' . $suffix; } +/** + * Update mailbox_cache and close session in order to prevent + * script locking on larger downloads. SendDownloadHeaders() and + * mime_print_body_lines() don't write information to session. + * mime_print_body_lines() call duration depends on size of + * attachment and script can cause interface lockups, if session + * is not closed. + */ +$mailbox_cache[$aMailbox['NAME']] = $aMailbox; +sqsession_register($mailbox_cache,'mailbox_cache'); +session_write_close(); + /* * Note: * The following sections display the attachment in different @@ -156,7 +168,5 @@ if (isset($absolute_dl) && $absolute_dl) { /* be aware that any warning caused by download.php will corrupt the * attachment in case of ERROR reporting = E_ALL and the output is the screen */ mime_print_body_lines ($imapConnection, $passed_id, $ent_id, $encoding); -$mailbox_cache[$aMailbox['NAME']] = $aMailbox; -sqsession_register($mailbox_cache,'mailbox_cache'); ?> \ No newline at end of file