diff options
author | Jeffrey Stedfast <fejj@ximian.com> | 2004-06-13 01:27:51 +0800 |
---|---|---|
committer | Jeffrey Stedfast <fejj@src.gnome.org> | 2004-06-13 01:27:51 +0800 |
commit | 3e94f5100cae141d1944b0c1cf9577a59a3ce281 (patch) | |
tree | ec7bba2ff1787abe6a6d3cd9163aba9d7709a648 /camel | |
parent | 2f2db14aca26d6b60b67685a1bcbbe1500b09b01 (diff) | |
download | gsoc2013-evolution-3e94f5100cae141d1944b0c1cf9577a59a3ce281.tar.gz gsoc2013-evolution-3e94f5100cae141d1944b0c1cf9577a59a3ce281.tar.zst gsoc2013-evolution-3e94f5100cae141d1944b0c1cf9577a59a3ce281.zip |
Flush summary updates for the currently selected folder. (imap4_noop):
2004-06-12 Jeffrey Stedfast <fejj@ximian.com>
* providers/imap4/camel-imap4-store.c (imap4_noop): Flush summary
updates for the currently selected folder.
(imap4_noop): Sync the currently selected folder before sending
NOOP.
svn path=/trunk/; revision=26324
Diffstat (limited to 'camel')
-rw-r--r-- | camel/ChangeLog | 2 | ||||
-rw-r--r-- | camel/providers/imap4/camel-imap4-store.c | 13 |
2 files changed, 13 insertions, 2 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog index 3fa2d5bfbd..402c331b9f 100644 --- a/camel/ChangeLog +++ b/camel/ChangeLog @@ -2,6 +2,8 @@ * providers/imap4/camel-imap4-store.c (imap4_noop): Flush summary updates for the currently selected folder. + (imap4_noop): Sync the currently selected folder before sending + NOOP. * providers/imap4/camel-imap4-summary.c (camel_imap4_summary_set_exists): Don't bother with diff --git a/camel/providers/imap4/camel-imap4-store.c b/camel/providers/imap4/camel-imap4-store.c index e9dcd66288..518b8ab137 100644 --- a/camel/providers/imap4/camel-imap4-store.c +++ b/camel/providers/imap4/camel-imap4-store.c @@ -1301,11 +1301,20 @@ static void imap4_noop (CamelStore *store, CamelException *ex) { CamelIMAP4Engine *engine = ((CamelIMAP4Store *) store)->engine; + CamelFolder *folder = (CamelFolder *) engine->folder; CamelIMAP4Command *ic; int id; CAMEL_SERVICE_LOCK (store, connect_lock); + if (folder) { + camel_folder_sync (folder, FALSE, ex); + if (camel_exception_is_set (ex)) { + CAMEL_SERVICE_UNLOCK (store, connect_lock); + return; + } + } + ic = camel_imap4_engine_queue (engine, NULL, "NOOP\r\n"); while ((id = camel_imap4_engine_iterate (engine)) < ic->id && id != -1) ; @@ -1315,8 +1324,8 @@ imap4_noop (CamelStore *store, CamelException *ex) camel_imap4_command_unref (ic); - if (engine->folder && !camel_exception_is_set (ex)) - camel_imap4_summary_flush_updates (((CamelFolder *) engine->folder)->summary, ex); + if (folder && !camel_exception_is_set (ex)) + camel_imap4_summary_flush_updates (folder->summary, ex); CAMEL_SERVICE_UNLOCK (store, connect_lock); } |