aboutsummaryrefslogtreecommitdiffstats
path: root/camel/providers
diff options
context:
space:
mode:
authorNot Zed <NotZed@Ximian.com>2002-07-24 11:41:24 +0800
committerMichael Zucci <zucchi@src.gnome.org>2002-07-24 11:41:24 +0800
commitd487683bb3f82a0905e075f2f689479e0b36727d (patch)
tree436503876ad7104d31bba36f690558b3ad1746f6 /camel/providers
parent7e8effc12c9274a8c2fb8ecdf0a01e261cdedeaa (diff)
downloadgsoc2013-evolution-d487683bb3f82a0905e075f2f689479e0b36727d.tar.gz
gsoc2013-evolution-d487683bb3f82a0905e075f2f689479e0b36727d.tar.zst
gsoc2013-evolution-d487683bb3f82a0905e075f2f689479e0b36727d.zip
Sync before doing an expunge if we dont have uidplus. See #25766.
2002-07-24 Not Zed <NotZed@Ximian.com> * providers/imap/camel-imap-folder.c (imap_expunge_uids_online): Sync before doing an expunge if we dont have uidplus. See #25766. (imap_expunge_uids_resyncing): Same here. svn path=/trunk/; revision=17562
Diffstat (limited to 'camel/providers')
-rw-r--r--camel/providers/imap/camel-imap-folder.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/camel/providers/imap/camel-imap-folder.c b/camel/providers/imap/camel-imap-folder.c
index 2676dc1db9..60c3979b03 100644
--- a/camel/providers/imap/camel-imap-folder.c
+++ b/camel/providers/imap/camel-imap-folder.c
@@ -823,7 +823,15 @@ imap_expunge_uids_online (CamelFolder *folder, GPtrArray *uids, CamelException *
char *set;
CAMEL_IMAP_STORE_LOCK (store, command_lock);
-
+
+ if ((store->capabilities & IMAP_CAPABILITY_UIDPLUS) == 0) {
+ ((CamelFolderClass *)CAMEL_OBJECT_GET_CLASS(folder))->sync(folder, 0, ex);
+ if (camel_exception_is_set(ex)) {
+ CAMEL_IMAP_STORE_UNLOCK (store, command_lock);
+ return;
+ }
+ }
+
while (uid < uids->len) {
set = imap_uid_array_to_set (folder->summary, uids, uid, UID_SET_LIMIT, &uid);
response = camel_imap_command (store, folder, ex,
@@ -886,6 +894,13 @@ imap_expunge_uids_resyncing (CamelFolder *folder, GPtrArray *uids, CamelExceptio
*/
CAMEL_IMAP_STORE_LOCK (store, command_lock);
+
+ ((CamelFolderClass *)CAMEL_OBJECT_GET_CLASS(folder))->sync(folder, 0, ex);
+ if (camel_exception_is_set(ex)) {
+ CAMEL_IMAP_STORE_UNLOCK (store, command_lock);
+ return;
+ }
+
response = camel_imap_command (store, folder, ex, "UID SEARCH DELETED");
if (!response) {
CAMEL_IMAP_STORE_UNLOCK (store, command_lock);