Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion lib/Contents/Message.php
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,7 @@ public function showMessage()
foreach ($part_info as $val) {
if (isset($summary[$val])) {
$tmp[$val] = ($summary[$val] instanceof Horde_Url
|| $summary[$val] instanceof \Horde\Url\Url)
|| $summary[$val] instanceof Horde\Url\Url)
? strval($summary[$val]->setRaw(true))
: $summary[$val];
}
Expand Down
18 changes: 11 additions & 7 deletions lib/Imap/Cache/Wrapper.php
Original file line number Diff line number Diff line change
Expand Up @@ -70,19 +70,23 @@ protected function _initOb($params)

switch ($this->_params['driver']) {
case 'cache':
case 'hashtable':
/* The 'hashtable' driver is retired. The legacy
* Horde_Imap_Client_Cache_Backend_Hashtable bypassed
* Horde_Cache to write one entry per UID, optimized for
* Memcache 1.0's poor multi-get performance. Modern Redis
* (with MGET/pipelining) handles the sliced strategy of
* Backend_Cache equally well, and going through Horde_Cache
* gives one code path with consistent TTL/age handling. Old
* configurations that still set driver='hashtable' fall
* through here so users do not need to update their config
* during the migration period. */
$ob = new Horde_Imap_Client_Cache_Backend_Cache(array_filter([
'cacheob' => $injector->getInstance('Horde_Cache'),
'lifetime' => ($this->_params['lifetime'] ?? null),
]));
break;

case 'hashtable':
$ob = new Horde_Imap_Client_Cache_Backend_Hashtable(array_filter([
'hashtable' => $injector->getInstance('Horde_HashTable'),
'lifetime' => ($this->_params['lifetime'] ?? null),
]));
break;

case 'none':
$ob = new Horde_Imap_Client_Cache_Backend_Null();
break;
Expand Down
Loading