- Performance improvement: Remove redundant DELETE query (for old session deletion) on login

release-0.6
alecpl 13 years ago
parent fb061aaece
commit c294eaa3f2

@ -1,6 +1,7 @@
CHANGELOG Roundcube Webmail
===========================
- Remove redundant DELETE query (for old session deletion) on login
- Get around unreliable rand() and mt_rand() in session ID generation (#1486281)
- Fix some emails are not shown using Cyrus IMAP (#1487820)
- Fix handling of mime-encoded words with non-integral number of octets in a word (#1487801)

@ -98,7 +98,9 @@ if ($RCMAIL->task == 'login' && $RCMAIL->action == 'login') {
$RCMAIL->login($auth['user'], $auth['pass'], $auth['host'])) {
// create new session ID
$RCMAIL->session->remove('temp');
$RCMAIL->session->regenerate_id();
// regenerate the session, don't destroy the current session
// it was destroyed already by $RCMAIL->kill_session() above
$RCMAIL->session->regenerate_id(false);
// send auth cookie if necessary
$RCMAIL->session->set_auth_cookie();
@ -110,7 +112,7 @@ if ($RCMAIL->task == 'login' && $RCMAIL->action == 'login') {
$query = array();
if ($url = get_input_value('_url', RCUBE_INPUT_POST)) {
parse_str($url, $query);
// prevent endless looping on login page
if ($query['_task'] == 'login')
unset($query['_task']);

@ -205,15 +205,15 @@ class rcube_session
/**
* Generate and set new session id
*
* @param boolean $destroy If enabled the current session will be destroyed
*/
public function regenerate_id()
public function regenerate_id($destroy=true)
{
// delete old session record
$this->destroy(session_id());
$this->vars = false;
session_regenerate_id($destroy);
session_regenerate_id(false);
$this->key = session_id();
$this->vars = false;
$this->key = session_id();
return true;
}

Loading…
Cancel
Save