aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--libsylph/imap.c6
2 files changed, 11 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index f98d0636..c7167a28 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2012-04-20
+
+ * libsylph/imap.c: imap_remove_msgs_by_seq_set(): workaround for
+ a broken IMAP server (Yahoo! Mail) which cannot fetch messages
+ right after EXPUNGE.
+
2012-04-18
* src/update_check.c: removed compiler warnings caused by usage of
diff --git a/libsylph/imap.c b/libsylph/imap.c
index 2ec7d0b9..4901aab6 100644
--- a/libsylph/imap.c
+++ b/libsylph/imap.c
@@ -1686,8 +1686,12 @@ static gint imap_remove_msgs_by_seq_set(Folder *folder, FolderItem *item,
}
ok = imap_cmd_expunge(session);
- if (ok != IMAP_SUCCESS)
+ if (ok != IMAP_SUCCESS) {
log_warning(_("can't expunge\n"));
+ } else {
+ /* for some broken IMAP servers */
+ ok = imap_cmd_noop(session);
+ }
item->updated = TRUE;