program/include/rcube.php | ●●●●● patch | view | raw | blame | history | |
program/include/rcube_cache.php | ●●●●● patch | view | raw | blame | history | |
program/include/rcube_imap.php | ●●●●● patch | view | raw | blame | history | |
program/include/rcube_shared.inc | ●●●●● patch | view | raw | blame | history |
program/include/rcube.php
@@ -236,7 +236,7 @@ * * @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 string $ttl Expiration time for cache items * @param bool $packed Enables/disables data serialization * * @return rcube_cache Cache object program/include/rcube_cache.php
@@ -59,7 +59,7 @@ * @param string $type Engine type ('db' or 'memcache' or 'apc') * @param int $userid User identifier * @param string $prefix Key name prefix * @param int $ttl Expiration time of memcache/apc items in seconds (max.2592000) * @param string $ttl Expiration time of memcache/apc items * @param bool $packed Enables/disabled data serialization. * It's possible to disable data serialization if you're sure * stored data will be always a safe string @@ -82,8 +82,12 @@ $this->db = $rcube->get_dbh(); } // convert ttl string to seconds $ttl = get_offset_sec($ttl); if ($ttl > 2592000) $ttl = 2592000; $this->userid = (int) $userid; $this->ttl = (int) $ttl; $this->ttl = $ttl; $this->packed = $packed; $this->prefix = $prefix; } program/include/rcube_imap.php
@@ -3532,8 +3532,6 @@ if ($this->caching && !$this->cache) { $rcube = rcube::get_instance(); $ttl = $rcube->config->get('message_cache_lifetime', '10d'); $ttl = get_offset_time($ttl) - time(); $this->cache = $rcube->get_cache('IMAP', $this->caching, $ttl); } program/include/rcube_shared.inc
@@ -146,25 +146,23 @@ /** * Create a unix timestamp with a specified offset from now. * Returns number of seconds for a specified offset string. * * @param string $offset_str String representation of the offset (e.g. 20min, 5h, 2days) * @param int $factor Factor to multiply with the offset * @param string $str String representation of the offset (e.g. 20min, 5h, 2days, 1week) * * @return int Unix timestamp * @return int Number of seconds */ function get_offset_time($offset_str, $factor=1) function get_offset_sec($str) { if (preg_match('/^([0-9]+)\s*([smhdw])/i', $offset_str, $regs)) { $amount = (int)$regs[1]; if (preg_match('/^([0-9]+)\s*([smhdw])/i', $str, $regs)) { $amount = (int) $regs[1]; $unit = strtolower($regs[2]); } else { $amount = (int)$offset_str; $amount = (int) $str; $unit = 's'; } $ts = time(); switch ($unit) { case 'w': $amount *= 7; @@ -174,11 +172,23 @@ $amount *= 60; case 'm': $amount *= 60; case 's': $ts += $amount * $factor; } return $ts; return $amount; } /** * Create a unix timestamp with a specified offset from now. * * @param string $offset_str String representation of the offset (e.g. 20min, 5h, 2days) * @param int $factor Factor to multiply with the offset * * @return int Unix timestamp */ function get_offset_time($offset_str, $factor=1) { return time() + get_offset_sec($offset_str) * $factor; }