From 638e3459d644c5414ea2ebc39090647c9659340d Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Sat, 30 Apr 2011 13:01:59 -0400
Subject: [PATCH] Don't attempt to read session data again if the initial read didn't return a result

---
 program/include/rcube_session.php |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/program/include/rcube_session.php b/program/include/rcube_session.php
index 9f636b0..eca8450 100644
--- a/program/include/rcube_session.php
+++ b/program/include/rcube_session.php
@@ -163,7 +163,7 @@
     $now = $this->db->fromunixtime((int)$ts);
 
     // use internal data from read() for fast requests (up to 0.5 sec.)
-    if ($key == $this->key && $ts - $this->start < 0.5) {
+    if ($key == $this->key && (!$this->vars || $ts - $this->start < 0.5)) {
       $oldvars = $this->vars;
     } else { // else read data again from DB
       $oldvars = $this->db_read($key);
@@ -289,7 +289,7 @@
     $ts = microtime(true);
 
     // use internal data for fast requests (up to 0.5 sec.)
-    if ($key == $this->key && $ts - $this->start < 0.5)
+    if ($key == $this->key && !($this->vars || $ts - $this->start < 0.5))
       $oldvars = $this->vars;
     else // else read data again
       $oldvars = $this->mc_read($key);

--
Gitblit v1.9.1