aboutsummaryrefslogtreecommitdiffstats
path: root/camel/providers
diff options
context:
space:
mode:
authorEttore Perazzoli <ettore@src.gnome.org>2000-07-06 03:42:32 +0800
committerEttore Perazzoli <ettore@src.gnome.org>2000-07-06 03:42:32 +0800
commit0837fc409943cafbf57dcd51525b9b7f68148639 (patch)
treebce40c01ff35049703f704e01f09262818e74f87 /camel/providers
parent095903c7d3c4028aec99f4cdc23149e1fed81fa6 (diff)
downloadgsoc2013-evolution-0837fc409943cafbf57dcd51525b9b7f68148639.tar.gz
gsoc2013-evolution-0837fc409943cafbf57dcd51525b9b7f68148639.tar.zst
gsoc2013-evolution-0837fc409943cafbf57dcd51525b9b7f68148639.zip
Fix the "clashing UIDs are not updated on disk" problem by syncing
back to disk even if the saved UID does not match the in-memory UID and added some debugging messages. Also, make sure the UID we use for Ibex stuff is the new one when changing UIDs to solve a clashing problem. svn path=/trunk/; revision=3892
Diffstat (limited to 'camel/providers')
-rw-r--r--camel/providers/mbox/camel-mbox-folder.c1
-rw-r--r--camel/providers/mbox/camel-mbox-summary.c15
2 files changed, 5 insertions, 11 deletions
diff --git a/camel/providers/mbox/camel-mbox-folder.c b/camel/providers/mbox/camel-mbox-folder.c
index 6efa93a42c..63d0d2cfb9 100644
--- a/camel/providers/mbox/camel-mbox-folder.c
+++ b/camel/providers/mbox/camel-mbox-folder.c
@@ -310,6 +310,7 @@ mbox_append_message (CamelFolder *folder, CamelMimeMessage *message, CamelExcept
uid = camel_folder_summary_next_uid (CAMEL_FOLDER_SUMMARY (mbox_folder->summary));
xev = g_strdup_printf ("%08x-0000", uid);
camel_medium_add_header (CAMEL_MEDIUM (message), "X-Evolution", xev);
+ g_print ("%s -- %s\n", __FUNCTION__, xev);
g_free (xev);
/* we must write this to the non-filtered stream ... */
diff --git a/camel/providers/mbox/camel-mbox-summary.c b/camel/providers/mbox/camel-mbox-summary.c
index 90f13a7ff2..ebc607d9fa 100644
--- a/camel/providers/mbox/camel-mbox-summary.c
+++ b/camel/providers/mbox/camel-mbox-summary.c
@@ -672,19 +672,12 @@ camel_mbox_summary_sync (CamelMboxSummary *mbs, gboolean expunge, CamelException
goto error;
}
- xev = camel_mime_parser_header (mp, "X-Evolution", &xevoffset);
- if (xev && header_evolution_decode (xev, &uid, &flags) != -1) {
- char name[64];
+ /* Check if the X-Evolution header is valid. */
- sprintf (name, "%u", uid);
- if (strcmp (name, info->info.uid)) {
- d(printf ("Summary mismatch, aborting leaving mailbox intact\n"));
- camel_exception_setv (ex, CAMEL_EXCEPTION_SYSTEM,
- "Summary mismatch, aborting leaving mailbox intact");
- goto error;
- }
+ xev = camel_mime_parser_header (mp, "X-Evolution", &xevoffset);
+ if (xev && header_evolution_decode (xev, &uid, &flags) != -1)
xevok = TRUE;
- }
+
xevnew = header_evolution_encode (strtoul (info->info.uid, NULL, 10), info->info.flags & 0xffff);
if (quick) {
if (!xevok) {