diff options
author | Dan Winship <danw@src.gnome.org> | 2001-05-30 01:08:53 +0800 |
---|---|---|
committer | Dan Winship <danw@src.gnome.org> | 2001-05-30 01:08:53 +0800 |
commit | 11ea26d0e33405490795a766406d5e065b6b9234 (patch) | |
tree | be249f7528c0a8b17cdd0890d40684f12eeb50e5 /camel/ChangeLog | |
parent | efabbb93c9f61e583d835d1735834cc5bd0ce63c (diff) | |
download | gsoc2013-evolution-11ea26d0e33405490795a766406d5e065b6b9234.tar.gz gsoc2013-evolution-11ea26d0e33405490795a766406d5e065b6b9234.tar.zst gsoc2013-evolution-11ea26d0e33405490795a766406d5e065b6b9234.zip |
Code for logging and replaying offline operations.
* camel-disco-diary.c: Code for logging and replaying offline
operations.
* camel-disco-store.c (disco_construct): Set disco->status here
(where we can base it on the session's offline status) rather than
at init time.
(disco_connect): If we connect online and have a non-empty diary,
switch to RESYNCING mode and replay the diary to the server.
(disco_get_folder, disco_get_folder_info): Add _resyncing
variants.
* camel-disco-folder.c (disco_sync, disco_expunge_uids,
disco_append_message, disco_copy_messages_to,
disco_move_messages_to): Add _resyncing variants to switches.
(disco_expunge_uids, disco_append_message, disco_copy_messages_to,
disco_move_messages_to): Remove #ifdef'ed out diary code: let the
provider do it.
(disco_append_message): Redo the append methods to no longer
return the UID, since we're no longer doing the logging from here.
svn path=/trunk/; revision=10040
Diffstat (limited to 'camel/ChangeLog')
-rw-r--r-- | camel/ChangeLog | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog index e09c0532e1..ae54828283 100644 --- a/camel/ChangeLog +++ b/camel/ChangeLog @@ -1,3 +1,69 @@ +2001-05-29 Dan Winship <danw@ximian.com> + + * camel-disco-diary.c: Code for logging and replaying offline + operations. + + * camel-disco-store.c (disco_construct): Set disco->status here + (where we can base it on the session's offline status) rather than + at init time. + (disco_connect): If we connect online and have a non-empty diary, + switch to RESYNCING mode and replay the diary to the server. + (disco_get_folder, disco_get_folder_info): Add _resyncing + variants. + + * camel-disco-folder.c (disco_sync, disco_expunge_uids, + disco_append_message, disco_copy_messages_to, + disco_move_messages_to): Add _resyncing variants to switches. + (disco_expunge_uids, disco_append_message, disco_copy_messages_to, + disco_move_messages_to): Remove #ifdef'ed out diary code: let the + provider do it. + (disco_append_message): Redo the append methods to no longer + return the UID, since we're no longer doing the logging from here. + + * providers/imap/camel-imap-store.c (imap_connect_online, + imap_connect_offline): Create a CamelDiscoDiary. + (imap_disconnect_offline): And free it. + + * providers/imap/camel-imap-folder.c (camel_imap_folder_selected): + If RESYNCING, don't do any sort of checking that the remote folder + matches the summary, beyond making sure that the UIDVALIDITY is + correct. + (imap_rescan): Add a missing camel_folder_summary_info_free when + removing a UID from the summary. + (imap_expunge_uids_offline): Implement. Fairly simple. + (imap_expunge_uids_resyncing): Implement. If the store supports + UIDPLUS, we can just use imap_expunge_uids_online. If not, we need + to temporarily undelete any messages marked deleted on the server + that aren't supposed to get expunged. + (imap_append_offline): Implement, using cache and summary + operations, and triggering the folder_changed event by hand. + (imap_append_resyncing): Implement. Redo imap_append_online a bit + in the process to make them able to share more code. + (imap_copy_offline): Implement. + (imap_copy_online): Move parts of this out into a helper. + (imap_copy_resyncing): Implement. In most cases this is just like + imap_copy_online, but if you are copying a message that was itself + copied or appended into the folder, and the server doesn't do + UIDPLUS, it will be necessary to replace at least part of the copy + operation with one or more appends. + + * providers/imap/camel-imap-command.c (imap_read_response): Don't + record the current folder in the response when in RESYNCING mode. + (This means that EXISTS and EXPUNGE responses won't be processed, + which is needed because the summary may not match the folder at + this point.) + (imap_read_response): On error, call + camel_imap_response_free_without_processing, not + camel_imap_response_free. + + * providers/imap/camel-imap-utils.c (imap_uid_array_to_set): Make + this work better when operating on UIDs that aren't in the summary. + + * providers/imap/camel-imap-summary.c + (camel_imap_summary_add_offline): New routine used by + imap_append_offline and imap_copy_offline to create new summary + entries. + 2001-05-28 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-utils.c (header_set_param): Use g_strcasecmp() |