alecpl
2011-03-08 c294eaa3f27ca5f38101eb4a1692111ac0ee82f8
- Performance improvement: Remove redundant DELETE query (for old session deletion) on login


3 files modified
19 ■■■■■ changed files
CHANGELOG 1 ●●●● patch | view | raw | blame | history
index.php 6 ●●●●● patch | view | raw | blame | history
program/include/rcube_session.php 12 ●●●● patch | view | raw | blame | history
CHANGELOG
@@ -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)
index.php
@@ -98,7 +98,9 @@
        $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 @@
    $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']);
program/include/rcube_session.php
@@ -205,15 +205,15 @@
  /**
   * 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;
  }