aboutsummaryrefslogtreecommitdiffstats
path: root/Zotlabs/Web/Session.php
diff options
context:
space:
mode:
authornobody <nobody@zotlabs.com>2021-04-05 23:15:01 -0700
committernobody <nobody@zotlabs.com>2021-04-05 23:15:01 -0700
commit9359fc065c72243bd85f0fc3db842976f07183cc (patch)
tree37551feefe6fff472b9c346a7a8c3cd9080d8946 /Zotlabs/Web/Session.php
parent878be8fff0328ee4ab978de20e7e385244ac54ec (diff)
parent19daadbfd7f281e27dffdc53d0e8ebeb837e1ae3 (diff)
downloadvolse-hubzilla-9359fc065c72243bd85f0fc3db842976f07183cc.tar.gz
volse-hubzilla-9359fc065c72243bd85f0fc3db842976f07183cc.tar.bz2
volse-hubzilla-9359fc065c72243bd85f0fc3db842976f07183cc.zip
Merge branch 'dev' of https://framagit.org/hubzilla/core into dev
Diffstat (limited to 'Zotlabs/Web/Session.php')
-rw-r--r--Zotlabs/Web/Session.php36
1 files changed, 23 insertions, 13 deletions
diff --git a/Zotlabs/Web/Session.php b/Zotlabs/Web/Session.php
index fe0a3fbf9..6f92a0319 100644
--- a/Zotlabs/Web/Session.php
+++ b/Zotlabs/Web/Session.php
@@ -29,34 +29,44 @@ class Session {
/*
* Set our session storage functions.
*/
-
+
if($this->custom_handler) {
/* Custom handler (files, memached, redis..) */
$session_save_handler = strval(get_config('system', 'session_save_handler', Null));
$session_save_path = strval(get_config('system', 'session_save_path', Null));
- $session_gc_probability = intval(get_config('system', 'session_gc_probability', 1));
- $session_gc_divisor = intval(get_config('system', 'session_gc_divisor', 100));
- if(!$session_save_handler || !$session_save_path) {
- logger('Session save handler or path not set.',LOGGER_NORMAL,LOG_ERR);
+
+ if(is_null($session_save_handler) || is_null($session_save_path)) {
+ logger('Session save handler or path not set', LOGGER_NORMAL, LOG_ERR);
}
else {
- ini_set('session.save_handler', $session_save_handler);
- ini_set('session.save_path', $session_save_path);
- ini_set('session.gc_probability', $session_gc_probability);
- ini_set('session.gc_divisor', $session_gc_divisor);
+ // Check if custom sessions backend exists
+ $clsname = '\Zotlabs\Web\Session' . ucfirst(strtolower($session_save_handler));
+ if (class_exists($clsname)) {
+ $handler = new $clsname($session_save_path);
+ }
+ else {
+ ini_set('session.save_handler', $session_save_handler);
+ ini_set('session.save_path', $session_save_path);
+ ini_set('session.gc_probability', intval(get_config('system', 'session_gc_probability', 1)));
+ ini_set('session.gc_divisor', intval(get_config('system', 'session_gc_divisor', 100)));
+ }
}
}
else {
- $handler = new \Zotlabs\Web\SessionHandler();
+ $handler = new SessionHandler();
+ }
+
+ if (isset($handler)) {
$this->handler = $handler;
- $x = session_set_save_handler($handler,false);
- if(! $x)
- logger('Session save handler initialisation failed.',LOGGER_NORMAL,LOG_ERR);
+ $x = session_set_save_handler($handler, false);
+ if(! $x)
+ logger('Session save handler initialisation failed.',LOGGER_NORMAL,LOG_ERR);
}
+
// Force cookies to be secure (https only) if this site is SSL enabled.
// Must be done before session_start().