summaryrefslogtreecommitdiffstats
path: root/system/libraries/Session/drivers
diff options
context:
space:
mode:
authorFlorian Pritz <bluewind@xinu.at>2022-04-10 11:46:21 +0200
committerFlorian Pritz <bluewind@xinu.at>2022-04-10 11:46:21 +0200
commitb401c4e13863143b38b8848595566801fcc1527f (patch)
treec6eae5ce18f519480ead73a16029dbf3c8e993aa /system/libraries/Session/drivers
parent3deea564901d69109ddd6f757ccff84e6f113997 (diff)
parent45576ef6e62b5ff59da67f1697ee8c57809c7719 (diff)
Merge remote-tracking branch 'upstream/3.1-stable' into dev
Diffstat (limited to 'system/libraries/Session/drivers')
-rw-r--r--system/libraries/Session/drivers/Session_database_driver.php29
-rw-r--r--system/libraries/Session/drivers/Session_files_driver.php22
-rw-r--r--system/libraries/Session/drivers/Session_memcached_driver.php20
-rw-r--r--system/libraries/Session/drivers/Session_redis_driver.php20
4 files changed, 82 insertions, 9 deletions
diff --git a/system/libraries/Session/drivers/Session_database_driver.php b/system/libraries/Session/drivers/Session_database_driver.php
index 2f788a1a1..4b475364b 100644
--- a/system/libraries/Session/drivers/Session_database_driver.php
+++ b/system/libraries/Session/drivers/Session_database_driver.php
@@ -345,15 +345,40 @@ class CI_Session_database_driver extends CI_Session_driver implements CI_Session
// --------------------------------------------------------------------
/**
+ * Update Timestamp
+ *
+ * Update session timestamp without modifying data
+ *
+ * @param string $id Session ID
+ * @param string $data Unknown & unused
+ * @return bool
+ */
+ public function updateTimestamp($id, $unknown)
+ {
+ // Prevent previous QB calls from messing with our queries
+ $this->_db->reset_query();
+
+ $this->_db->where('id', $id);
+ if ($this->_config['match_ip'])
+ {
+ $this->_db->where('ip_address', $_SERVER['REMOTE_ADDR']);
+ }
+
+ return (bool) $this->_db->update($this->_config['save_path'], array('timestamp' => time()));
+ }
+
+ // --------------------------------------------------------------------
+
+ /**
* Validate ID
*
* Checks whether a session ID record exists server-side,
* to enforce session.use_strict_mode.
*
- * @param string $id
+ * @param string $id Session ID
* @return bool
*/
- public function validateSessionId($id)
+ public function validateId($id)
{
// Prevent previous QB calls from messing with our queries
$this->_db->reset_query();
diff --git a/system/libraries/Session/drivers/Session_files_driver.php b/system/libraries/Session/drivers/Session_files_driver.php
index 4b7b9878b..be0dc9ede 100644
--- a/system/libraries/Session/drivers/Session_files_driver.php
+++ b/system/libraries/Session/drivers/Session_files_driver.php
@@ -35,7 +35,7 @@
* @link https://codeigniter.com
* @since Version 3.0.0
* @filesource
-*/
+ */
defined('BASEPATH') OR exit('No direct script access allowed');
/**
@@ -401,15 +401,31 @@ class CI_Session_files_driver extends CI_Session_driver implements CI_Session_dr
// --------------------------------------------------------------------
/**
+ * Update Timestamp
+ *
+ * Update session timestamp without modifying data
+ *
+ * @param string $id Session ID
+ * @param string $data Unknown & unused
+ * @return bool
+ */
+ public function updateTimestamp($id, $unknown)
+ {
+ return touch($this->_file_path.$id);
+ }
+
+ // --------------------------------------------------------------------
+
+ /**
* Validate ID
*
* Checks whether a session ID record exists server-side,
* to enforce session.use_strict_mode.
*
- * @param string $id
+ * @param string $id Session ID
* @return bool
*/
- public function validateSessionId($id)
+ public function validateId($id)
{
$result = is_file($this->_file_path.$id);
clearstatcache(TRUE, $this->_file_path.$id);
diff --git a/system/libraries/Session/drivers/Session_memcached_driver.php b/system/libraries/Session/drivers/Session_memcached_driver.php
index d84a9df1d..d1401630d 100644
--- a/system/libraries/Session/drivers/Session_memcached_driver.php
+++ b/system/libraries/Session/drivers/Session_memcached_driver.php
@@ -296,15 +296,31 @@ class CI_Session_memcached_driver extends CI_Session_driver implements CI_Sessio
// --------------------------------------------------------------------
/**
+ * Update Timestamp
+ *
+ * Update session timestamp without modifying data
+ *
+ * @param string $id Session ID
+ * @param string $data Unknown & unused
+ * @return bool
+ */
+ public function updateTimestamp($id, $unknown)
+ {
+ return $this->_memcached->touch($this->_key_prefix.$id, $this->_config['expiration']);
+ }
+
+ // --------------------------------------------------------------------
+
+ /**
* Validate ID
*
* Checks whether a session ID record exists server-side,
* to enforce session.use_strict_mode.
*
- * @param string $id
+ * @param string $id Session ID
* @return bool
*/
- public function validateSessionId($id)
+ public function validateId($id)
{
$this->_memcached->get($this->_key_prefix.$id);
return ($this->_memcached->getResultCode() === Memcached::RES_SUCCESS);
diff --git a/system/libraries/Session/drivers/Session_redis_driver.php b/system/libraries/Session/drivers/Session_redis_driver.php
index b112a18c8..269dfcd64 100644
--- a/system/libraries/Session/drivers/Session_redis_driver.php
+++ b/system/libraries/Session/drivers/Session_redis_driver.php
@@ -356,15 +356,31 @@ class CI_Session_redis_driver extends CI_Session_driver implements CI_Session_dr
// --------------------------------------------------------------------
/**
+ * Update Timestamp
+ *
+ * Update session timestamp without modifying data
+ *
+ * @param string $id Session ID
+ * @param string $data Unknown & unused
+ * @return bool
+ */
+ public function updateTimestamp($id, $unknown)
+ {
+ return $this->_redis->{$this->_setTimeout_name}($this->_key_prefix.$id, $this->_config['expiration']);
+ }
+
+ // --------------------------------------------------------------------
+
+ /**
* Validate ID
*
* Checks whether a session ID record exists server-side,
* to enforce session.use_strict_mode.
*
- * @param string $id
+ * @param string $id Session ID
* @return bool
*/
- public function validateSessionId($id)
+ public function validateId($id)
{
return (bool) $this->_redis->exists($this->_key_prefix.$id);
}