| | |
| | | $this->memcache = false; |
| | | return false; |
| | | } |
| | | |
| | | |
| | | $this->memcache = new Memcache; |
| | | $mc_available = 0; |
| | | foreach ($this->config->get('memcache_hosts', array()) as $host) { |
| | |
| | | if ($this->memcache->addServer($host, $port) && !$mc_available) |
| | | $mc_available += intval($this->memcache->connect($host, $port)); |
| | | } |
| | | |
| | | |
| | | if (!$mc_available) |
| | | $this->memcache = false; |
| | | } |
| | | |
| | | |
| | | return $this->memcache; |
| | | } |
| | | |
| | |
| | | /** |
| | | * Initialize and get cache object |
| | | * |
| | | * @param string $name Cache identifier |
| | | * @param string $type Cache type ('db' or 'memcache') |
| | | * @param string $name Cache identifier |
| | | * @param string $type Cache type ('db', 'apc' or 'memcache') |
| | | * @param int $ttl Expiration time for cache items in seconds |
| | | * @param bool $packed Enables/disables data serialization |
| | | * |
| | | * @return rcube_cache Cache object |
| | | */ |
| | | public function get_cache($name, $type) |
| | | public function get_cache($name, $type='db', $ttl=0, $packed=true) |
| | | { |
| | | if (!isset($this->caches[$name])) { |
| | | $this->caches[$name] = new rcube_cache($type, $_SESSION['user_id'], $name.'.'); |
| | | $this->caches[$name] = new rcube_cache($type, $_SESSION['user_id'], $name, $ttl, $packed); |
| | | } |
| | | |
| | | return $this->caches[$name]; |
| | |
| | | $_SESSION['timezone'] = floatval($_REQUEST['_timezone']); |
| | | |
| | | // force reloading complete list of subscribed mailboxes |
| | | $this->imap->clear_cache('mailboxes'); |
| | | $this->imap->clear_cache('mailboxes', true); |
| | | |
| | | return true; |
| | | } |
| | |
| | | if ($config['logout_expunge']) { |
| | | $this->imap->expunge('INBOX'); |
| | | } |
| | | |
| | | // Try to save unsaved user preferences |
| | | if (!empty($_SESSION['preferences'])) { |
| | | $this->user->save_prefs(unserialize($_SESSION['preferences'])); |
| | | } |
| | | } |
| | | |
| | | |