summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Woodhouse <David.Woodhouse@intel.com>2012-05-21 16:22:36 +0100
committerDavid Woodhouse <David.Woodhouse@intel.com>2012-05-21 16:24:29 +0100
commit8dbcc6452f72984ff4403407174712144fb766e9 (patch)
tree91e5f2f6cc72b91798a90e049693017603b34192
parent5186c995c06fb3398688de3518d899dc149f73b8 (diff)
downloadevolution-data-server-8dbcc6452f72984ff4403407174712144fb766e9.tar.gz
Bug 676506 - imapx: After QRESYNC leaves us out of sync, a "full resync" doesn't work either.
Always fetch from the beginning of the folder. (cherry picked from commit e689ff03dfa4d23722d14bdfd93103a91e4cd7e5)
-rw-r--r--camel/providers/imapx/camel-imapx-server.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/camel/providers/imapx/camel-imapx-server.c b/camel/providers/imapx/camel-imapx-server.c
index 345a63ed2..447e6d999 100644
--- a/camel/providers/imapx/camel-imapx-server.c
+++ b/camel/providers/imapx/camel-imapx-server.c
@@ -4018,7 +4018,18 @@ imapx_job_scan_changes_start (CamelIMAPXJob *job,
{
CamelIMAPXCommand *ic;
RefreshInfoData *data;
- gchar *uid = imapx_get_uid_from_index (job->folder->summary, 0);
+ CamelService *service;
+ CamelSettings *settings;
+ gboolean mobile_mode;
+ gchar *uid = NULL;
+
+ service = CAMEL_SERVICE (is->store);
+ settings = camel_service_get_settings (service);
+ mobile_mode = camel_imapx_settings_get_mobile_mode (
+ CAMEL_IMAPX_SETTINGS (settings));
+
+ if (mobile_mode)
+ uid = imapx_get_uid_from_index (job->folder->summary, 0);
data = camel_imapx_job_get_data (job);
g_return_if_fail (data != NULL);
@@ -4030,7 +4041,9 @@ imapx_job_scan_changes_start (CamelIMAPXJob *job,
_("Scanning for changed messages in %s"),
camel_folder_get_display_name (job->folder));
- e('E', "Scanning from %s in %s\n", uid, camel_folder_get_full_name (job->folder));
+ e('E', "Scanning from %s in %s\n", uid ? uid : "start",
+ camel_folder_get_full_name (job->folder));
+
ic = camel_imapx_command_new (
is, "FETCH", job->folder,
"UID FETCH %s:* (UID FLAGS)", uid ? uid : "1");