summaryrefslogtreecommitdiff
path: root/program/lib/Roundcube/rcube_imap.php
diff options
context:
space:
mode:
authorThomas Bruederli <thomas@roundcube.net>2014-04-23 13:21:51 +0200
committerThomas Bruederli <thomas@roundcube.net>2014-04-23 13:21:51 +0200
commit31aa080609f6ea8a561182eb5b3da46733bef313 (patch)
tree24ef1d723fdfaaf9ccc3a709fa2df7b3b4183bd4 /program/lib/Roundcube/rcube_imap.php
parent3b55b2f92b435630f56e63f5796471abacaaf425 (diff)
Further refine cross-folder searching:
- Store incomplete search results in session and re-send search requests to the server if returned before complete (this should avoid hitting request timeouts). - Display full folder path on mouseover in message list - Remove pthreads implementation stuff as this wasn't really working
Diffstat (limited to 'program/lib/Roundcube/rcube_imap.php')
-rw-r--r--program/lib/Roundcube/rcube_imap.php10
1 files changed, 10 insertions, 0 deletions
diff --git a/program/lib/Roundcube/rcube_imap.php b/program/lib/Roundcube/rcube_imap.php
index f2ade9545..2038b94d8 100644
--- a/program/lib/Roundcube/rcube_imap.php
+++ b/program/lib/Roundcube/rcube_imap.php
@@ -1513,6 +1513,16 @@ class rcube_imap extends rcube_storage
$this->threading = false;
$searcher = new rcube_imap_search($this->options, $this->conn);
+
+ // set limit to not exceed the client's request timeout
+ $searcher->set_timelimit(60);
+
+ // continue existing incomplete search
+ if (!empty($this->search_set) && $this->search_set->incomplete && $str == $this->search_string) {
+ $searcher->set_results($this->search_set);
+ }
+
+ // execute the search
$results = $searcher->exec(
$folder,
$str,