[evolution-data-server/imap-pop-mobile: 10/11] Fix a bug where mobile mode downloads all mails.



commit 812230fd39eb54048a71e70d6f8cd9ade553149d
Author: Srinivasa Ragavan <sragavan gnome org>
Date:   Thu Jan 26 11:27:50 2012 +0530

    Fix a bug where mobile mode downloads all mails.

 camel/providers/imapx/camel-imapx-server.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)
---
diff --git a/camel/providers/imapx/camel-imapx-server.c b/camel/providers/imapx/camel-imapx-server.c
index 351b117..91cb230 100644
--- a/camel/providers/imapx/camel-imapx-server.c
+++ b/camel/providers/imapx/camel-imapx-server.c
@@ -3995,6 +3995,7 @@ imapx_command_step_fetch_done (CamelIMAPXServer *is,
 	mobile_mode = camel_imapx_settings_get_mobile_mode (
 		CAMEL_IMAPX_SETTINGS (settings));
 
+	//printf("%s: Mobile mode: %d Fetch Count %d\n", camel_folder_get_display_name (job->folder), mobile_mode, batch_count);
 	if (ic->error != NULL || ic->status->result != IMAPX_OK) {
 		propagate_ic_error (job, ic, "Error fetching message headers");
 		goto cleanup;
@@ -4020,11 +4021,13 @@ imapx_command_step_fetch_done (CamelIMAPXServer *is,
 		ic->complete = imapx_command_step_fetch_done;
 		ic->job = job;
 		ic->pri = job->pri - 1;
+		//printf("Total: %d: %d, %d, %d\n", total, fetch_limit, i, job->u.refresh_info.last_index);
 		job->u.refresh_info.last_index = i;
 
 		/* If its mobile client and  when total=0 (new account setup) fetch only one batch of mails,
  		 * on futher attempts download all new mails as per the limit. */
-		for (; i < infos->len && (!mobile_mode || total || ((fetch_limit != -1 && i < fetch_limit) || (fetch_limit == -1 && i < batch_count))); i++) {
+		//printf("Total: %d: %d\n", total, fetch_limit);
+		for (; i < infos->len && (!mobile_mode || (total && i == 0) || ((fetch_limit != -1 && i < fetch_limit) || (fetch_limit == -1 && i < batch_count))); i++) {
 			gint res;
 			struct _refresh_info *r = &g_array_index (infos, struct _refresh_info, i);
 
@@ -4039,7 +4042,7 @@ imapx_command_step_fetch_done (CamelIMAPXServer *is,
 			}
 		}
 
-		e('S', "Existing : %d Gonna fetch in %s for %d/%d\n", total, camel_folder_get_full_name(job->folder), i, infos->len);
+		//printf("Existing : %d Gonna fetch in %s for %d/%d\n", total, camel_folder_get_full_name(job->folder), i, infos->len);
 		job->u.refresh_info.index = infos->len;
 
 		if (imapx_uidset_done (&job->u.refresh_info.uidset, ic)) {
@@ -4401,6 +4404,7 @@ imapx_job_fetch_new_messages_start (CamelIMAPXServer *is,
 		_("Fetching summary information for new messages in %s"),
 		camel_folder_get_display_name (folder));
 
+	//printf("Fetch order: %d/%d\n", fetch_order, CAMEL_SORT_DESCENDING);
 	if (diff > uidset_size || fetch_order == CAMEL_SORT_DESCENDING) {
 		ic = imapx_command_new (
 			is, "FETCH", job->folder, job->cancellable,



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]