commit 137d4ff97a26a124b762dfea4d7e05014ff55f4d
parent 35813d913762cdd2e9fd4f7919593effd97de70f
Author: Michael Rasmussen <mir@datanom.net>
Date: Fri, 6 Dec 2019 00:50:48 +0100
Fix imap keyword search. Libetpan assumes keyword search is a MUST but RFC states it is a MAY. Fix advanced search on MS Exchange
Signed-off-by: Michael Rasmussen <mir@datanom.net>
Diffstat:
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/src/imap.c b/src/imap.c
@@ -2496,10 +2496,16 @@ static gint search_msgs (Folder *folder,
progress_cb(progress_data, TRUE, container->total_msgs, 0, container->total_msgs);
if (result == MAILIMAP_ERROR_PROTOCOL) {
- debug_print("search_msgs - got protocol error, aborting\n");
+ debug_print("Server side search unavailable, using local search\n");
imap_handle_error(SESSION(session), NULL, result);
- alertpanel_error_log(_("Search failed due to server error."));
- return -1;
+ result = folder_item_search_msgs_local(folder, container, msgs, NULL, predicate, progress_cb, progress_data);
+ if (result < 0) {
+ debug_print("search_msgs - got protocol error, aborting\n");
+ alertpanel_error_log(_("Search failed due to server error."));
+ return -1;
+ }
+
+ return result;
} if (result == MAILIMAP_NO_ERROR) {
gint result = 0;