diff options
author | Andrey Andreev <narf@devilix.net> | 2016-02-10 18:55:39 +0100 |
---|---|---|
committer | Andrey Andreev <narf@devilix.net> | 2016-02-10 18:55:39 +0100 |
commit | a54a2b90bf057d7883ea7506d78a1073478ea4cf (patch) | |
tree | 65e1488797f35224061e0c3c5cb1a278a229b04f /system/libraries/Session | |
parent | d45cd5ab7d35f3c9b55414dc7709a0a41d91c0be (diff) |
Fix a bug where CI_Session_memcached_driver doesn't write empty sessions
Related: #3919
Diffstat (limited to 'system/libraries/Session')
-rw-r--r-- | system/libraries/Session/drivers/Session_memcached_driver.php | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/system/libraries/Session/drivers/Session_memcached_driver.php b/system/libraries/Session/drivers/Session_memcached_driver.php index e9246443c..ab3b1d97c 100644 --- a/system/libraries/Session/drivers/Session_memcached_driver.php +++ b/system/libraries/Session/drivers/Session_memcached_driver.php @@ -209,7 +209,6 @@ class CI_Session_memcached_driver extends CI_Session_driver implements SessionHa $this->_memcached->replace($this->_lock_key, time(), 300); if ($this->_fingerprint !== ($fingerprint = md5($session_data))) { - if ( $this->_memcached->replace($key, $session_data, $this->_config['expiration']) OR ($this->_memcached->getResultCode() === Memcached::RES_NOTSTORED && $this->_memcached->set($key, $session_data, $this->_config['expiration'])) @@ -222,9 +221,13 @@ class CI_Session_memcached_driver extends CI_Session_driver implements SessionHa return $this->_failure; } - return $this->_memcached->touch($this->_key_prefix.$session_id, $this->_config['expiration']) - ? $this->_success - : $this->_failure; + if ( + $this->_memcached->touch($key, $this->_config['expiration']) + OR ($this->_memcached->getResultCode() === Memcached::RES_NOTFOUND && $this->_memcached->set($key, $session_data, $this->_config['expiration'])) + ) + { + return $this->_success; + } } return $this->_failure; |