| | |
| | | private $db; |
| | | private $table_name; |
| | | |
| | | public function __construct() |
| | | /** |
| | | * @param Object $config |
| | | */ |
| | | public function __construct($config) |
| | | { |
| | | parent::__construct($config); |
| | | |
| | | // get db instance |
| | | $this->db = rcube::get_instance()->get_dbh(); |
| | | $this->db = rcube::get_instance()->get_dbh(); |
| | | |
| | | // session table name |
| | | $this->table_name = $this->db->table_name('session', true); |
| | |
| | | */ |
| | | public function update($key, $newvars, $oldvars) |
| | | { |
| | | $now = $this->db->now(); |
| | | $now = $this->db->now(); |
| | | $ts = microtime(true); |
| | | |
| | | // if new and old data are not the same, update data |
| | | // else update expire timestamp only when certain conditions are met |
| | |
| | | // just clean all old sessions when this GC is called |
| | | $this->db->query("DELETE FROM " . $this->db->table_name('session') |
| | | . " WHERE changed < " . $this->db->now(-$this->gc_enabled)); |
| | | $this->log("Session GC (DB): remove records < " . date('Y-m-d H:i:s', time() - $this->gc_enabled) . '; rows = ' . intval($this->db->affected_rows())); |
| | | } |
| | | |
| | | } |