r1727 - in /unstable/evolution-data-server/debian: ./ patches/

corsac at users.alioth.debian.org corsac at users.alioth.debian.org
Mon Sep 20 22:02:08 UTC 2010


Author: corsac
Date: Mon Sep 20 22:02:06 2010
New Revision: 1727

URL: http://svn.debian.org/wsvn/pkg-evolution/?sc=1&rev=1727
Log:
* debian/patches:
  - 101-Bug-629714-endless-loop-in-imapx_parse_status,
    102-Bug-630135-No-UI-feedback-when-imapx-connection-fail,
    103-Bug-630150-imapx-attempts-to-connect-to-server-when-,
    104-Bug-630152-imapx_parser_thread-registers-wrong-opera,
    105-Bug-629916-imapx-fails-to-handle-errors-in-imapx_com and
    106-Bug-630149-imapx_sync-never-returns-error added, fix various issues
    with IMAP+ backend leading to endless loops.

Added:
    unstable/evolution-data-server/debian/patches/102-Bug-630135-No-UI-feedback-when-imapx-connection-fail.patch
    unstable/evolution-data-server/debian/patches/103-Bug-630150-imapx-attempts-to-connect-to-server-when-.patch
    unstable/evolution-data-server/debian/patches/104-Bug-630152-imapx_parser_thread-registers-wrong-opera.patch
    unstable/evolution-data-server/debian/patches/105-Bug-629916-imapx-fails-to-handle-errors-in-imapx_com.patch
    unstable/evolution-data-server/debian/patches/106-Bug-630149-imapx_sync-never-returns-error.patch
Modified:
    unstable/evolution-data-server/debian/changelog
    unstable/evolution-data-server/debian/patches/series

Modified: unstable/evolution-data-server/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-evolution/unstable/evolution-data-server/debian/changelog?rev=1727&op=diff
==============================================================================
--- unstable/evolution-data-server/debian/changelog (original)
+++ unstable/evolution-data-server/debian/changelog Mon Sep 20 22:02:06 2010
@@ -1,9 +1,20 @@
 evolution-data-server (2.30.3-2) UNRELEASED; urgency=low
 
+  [ Josselin Mouette ]
   * 01_imapx_lockup.patch: stolen upstream. Avoid evolution lockups when 
     logging out with IDLE enabled.
 
- -- Josselin Mouette <joss at debian.org>  Sat, 18 Sep 2010 12:34:22 +0200
+  [ Yves-Alexis Perez ]
+  * debian/patches:
+    - 101-Bug-629714-endless-loop-in-imapx_parse_status,
+      102-Bug-630135-No-UI-feedback-when-imapx-connection-fail,
+      103-Bug-630150-imapx-attempts-to-connect-to-server-when-,
+      104-Bug-630152-imapx_parser_thread-registers-wrong-opera,
+      105-Bug-629916-imapx-fails-to-handle-errors-in-imapx_com and
+      106-Bug-630149-imapx_sync-never-returns-error added, fix various issues
+      with IMAP+ backend leading to endless loops.
+
+ -- Yves-Alexis Perez <corsac at debian.org>  Mon, 20 Sep 2010 18:09:51 +0200
 
 evolution-data-server (2.30.3-1) unstable; urgency=low
 

Added: unstable/evolution-data-server/debian/patches/102-Bug-630135-No-UI-feedback-when-imapx-connection-fail.patch
URL: http://svn.debian.org/wsvn/pkg-evolution/unstable/evolution-data-server/debian/patches/102-Bug-630135-No-UI-feedback-when-imapx-connection-fail.patch?rev=1727&op=file
==============================================================================
--- unstable/evolution-data-server/debian/patches/102-Bug-630135-No-UI-feedback-when-imapx-connection-fail.patch (added)
+++ unstable/evolution-data-server/debian/patches/102-Bug-630135-No-UI-feedback-when-imapx-connection-fail.patch Mon Sep 20 22:02:06 2010
@@ -1,0 +1,30 @@
+From 8e49861c224a141685d79a8723387a4af5acdd19 Mon Sep 17 00:00:00 2001
+From: David Woodhouse <David.Woodhouse at intel.com>
+Date: Mon, 20 Sep 2010 11:25:10 +0100
+Subject: [PATCH 2/6] Bug 630135 - No UI feedback when imapx connection fails
+
+Don't call camel_operation_cancel(NULL). That has undesired effects.
+
+Only call camel_operation_cancel(server->op) if it's non-NULL -- i.e. if the
+parser thread had actually started up and set it.
+---
+ camel/providers/imapx/camel-imapx-server.c |    3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+diff --git a/camel/providers/imapx/camel-imapx-server.c b/camel/providers/imapx/camel-imapx-server.c
+index a9e9eb8..1df8126 100644
+--- a/camel/providers/imapx/camel-imapx-server.c
++++ b/camel/providers/imapx/camel-imapx-server.c
+@@ -4629,7 +4629,8 @@ imapx_server_finalise(CamelIMAPXServer *is, CamelIMAPXServerClass *isclass)
+ 	QUEUE_UNLOCK(is);
+ 
+ 	is->parser_quit = TRUE;
+-	camel_operation_cancel (is->op);
++	if (is->op)
++		camel_operation_cancel (is->op);
+ 
+ 	if (is->parser_thread)
+ 		g_thread_join (is->parser_thread);
+-- 
+1.7.1
+

Added: unstable/evolution-data-server/debian/patches/103-Bug-630150-imapx-attempts-to-connect-to-server-when-.patch
URL: http://svn.debian.org/wsvn/pkg-evolution/unstable/evolution-data-server/debian/patches/103-Bug-630150-imapx-attempts-to-connect-to-server-when-.patch?rev=1727&op=file
==============================================================================
--- unstable/evolution-data-server/debian/patches/103-Bug-630150-imapx-attempts-to-connect-to-server-when-.patch (added)
+++ unstable/evolution-data-server/debian/patches/103-Bug-630150-imapx-attempts-to-connect-to-server-when-.patch Mon Sep 20 22:02:06 2010
@@ -1,0 +1,28 @@
+From 00b3267433a27002b794617fabbedd26db7e7b07 Mon Sep 17 00:00:00 2001
+From: David Woodhouse <David.Woodhouse at intel.com>
+Date: Mon, 20 Sep 2010 13:30:13 +0100
+Subject: [PATCH 3/6] Bug 630150 - imapx attempts to connect to server when already cancelled
+
+---
+ camel/providers/imapx/camel-imapx-store.c |    5 +++++
+ 1 files changed, 5 insertions(+), 0 deletions(-)
+
+diff --git a/camel/providers/imapx/camel-imapx-store.c b/camel/providers/imapx/camel-imapx-store.c
+index be30538..6e05e89 100644
+--- a/camel/providers/imapx/camel-imapx-store.c
++++ b/camel/providers/imapx/camel-imapx-store.c
+@@ -212,6 +212,11 @@ camel_imapx_store_get_server(CamelIMAPXStore *store, CamelException *ex)
+ {
+ 	CamelIMAPXServer *server = NULL;
+ 
++	if (camel_operation_cancel_check(NULL)) {
++		camel_exception_set (ex, CAMEL_EXCEPTION_USER_CANCEL,
++				     _("Cancelled"));
++		return NULL;
++	}
+ 	CAMEL_SERVICE_REC_LOCK (store, connect_lock);
+ 
+ 	if (store->server && camel_imapx_server_connect(store->server, ex)) {
+-- 
+1.7.1
+

Added: unstable/evolution-data-server/debian/patches/104-Bug-630152-imapx_parser_thread-registers-wrong-opera.patch
URL: http://svn.debian.org/wsvn/pkg-evolution/unstable/evolution-data-server/debian/patches/104-Bug-630152-imapx_parser_thread-registers-wrong-opera.patch?rev=1727&op=file
==============================================================================
--- unstable/evolution-data-server/debian/patches/104-Bug-630152-imapx_parser_thread-registers-wrong-opera.patch (added)
+++ unstable/evolution-data-server/debian/patches/104-Bug-630152-imapx_parser_thread-registers-wrong-opera.patch Mon Sep 20 22:02:06 2010
@@ -1,0 +1,25 @@
+From 086758fd47f33f7725f0642cb3affc499fd47640 Mon Sep 17 00:00:00 2001
+From: David Woodhouse <David.Woodhouse at intel.com>
+Date: Mon, 20 Sep 2010 13:47:48 +0100
+Subject: [PATCH 4/6] Bug 630152 - imapx_parser_thread registers wrong operation
+
+---
+ camel/providers/imapx/camel-imapx-server.c |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/camel/providers/imapx/camel-imapx-server.c b/camel/providers/imapx/camel-imapx-server.c
+index 1df8126..89a9f74 100644
+--- a/camel/providers/imapx/camel-imapx-server.c
++++ b/camel/providers/imapx/camel-imapx-server.c
+@@ -4476,7 +4476,7 @@ imapx_parser_thread (gpointer d)
+ 	CamelOperation *op;
+ 
+ 	op = camel_operation_new (NULL, NULL);
+-	op = camel_operation_register (op);
++	camel_operation_register (op);
+ 	is->op = op;
+ 
+ 	while (!camel_exception_is_set (&ex) && is->stream) {
+-- 
+1.7.1
+

Added: unstable/evolution-data-server/debian/patches/105-Bug-629916-imapx-fails-to-handle-errors-in-imapx_com.patch
URL: http://svn.debian.org/wsvn/pkg-evolution/unstable/evolution-data-server/debian/patches/105-Bug-629916-imapx-fails-to-handle-errors-in-imapx_com.patch?rev=1727&op=file
==============================================================================
--- unstable/evolution-data-server/debian/patches/105-Bug-629916-imapx-fails-to-handle-errors-in-imapx_com.patch (added)
+++ unstable/evolution-data-server/debian/patches/105-Bug-629916-imapx-fails-to-handle-errors-in-imapx_com.patch Mon Sep 20 22:02:06 2010
@@ -1,0 +1,67 @@
+From a7657a1bb6950ec78311d45eec42d4c57fef9a82 Mon Sep 17 00:00:00 2001
+From: David Woodhouse <David.Woodhouse at intel.com>
+Date: Mon, 20 Sep 2010 15:18:03 +0100
+Subject: [PATCH 5/6] Bug 629916 - imapx fails to handle errors in imapx_command_idle_stop()
+
+---
+ camel/providers/imapx/camel-imapx-server.c |   22 ++++++++++++++++++----
+ 1 files changed, 18 insertions(+), 4 deletions(-)
+
+diff --git a/camel/providers/imapx/camel-imapx-server.c b/camel/providers/imapx/camel-imapx-server.c
+index 89a9f74..31a571f 100644
+--- a/camel/providers/imapx/camel-imapx-server.c
++++ b/camel/providers/imapx/camel-imapx-server.c
+@@ -924,7 +924,9 @@ imapx_command_start_next(CamelIMAPXServer *is, CamelException *ex)
+ 		if (imapx_in_idle (is) && !camel_dlist_empty (&is->queue)) {
+ 			/* if imapx_stop_idle() returns FALSE, it was only
+ 			   pending and we can go ahead and send a new command
+-			   immediately. If it returns TRUE, we must wait. */
++			   immediately. If it returns TRUE, either it sent the
++			   DONE to exit IDLE mode, or there was an error.
++			   Either way, we do nothing more right now. */
+ 			if (imapx_stop_idle (is, ex)) {
+ 				c(printf ("waiting for idle to stop \n"));
+ 				return;
+@@ -1707,7 +1709,10 @@ imapx_continuation(CamelIMAPXServer *imap, CamelException *ex, gboolean litplus)
+ 			/* IDLE got cancelled after we sent the command, while
+ 			   we were waiting for this continuation. Send DONE
+ 			   immediately. */
+-			imapx_command_idle_stop(imap, ex);
++			if (!imapx_command_idle_stop (imap, ex)) {
++				IDLE_UNLOCK(imap->idle);
++				return -1;
++			}
+ 			imap->idle->state = IMAPX_IDLE_OFF;
+ 		} else {
+ 			c(printf("idle starts in wrong state %d\n",
+@@ -2034,6 +2039,11 @@ imapx_command_idle_stop (CamelIMAPXServer *is, CamelException *ex)
+ {
+ 	if (!is->stream || camel_stream_printf((CamelStream *)is->stream, "%s", "DONE\r\n") == -1) {
+ 		camel_exception_set (ex, 1, "Unable to issue DONE");
++		c(printf("Failed to issue DONE to terminate IDLE\n"));
++		is->state = IMAPX_SHUTDOWN;
++		if (is->op)
++			camel_operation_cancel(is->op);
++		is->parser_quit = TRUE;
+ 		return FALSE;
+ 	}
+ 
+@@ -2200,9 +2210,13 @@ imapx_stop_idle (CamelIMAPXServer *is, CamelException *ex)
+ 		break;
+ 
+ 	case IMAPX_IDLE_STARTED:
+-		imapx_command_idle_stop (is, ex);
+-		idle->state = IMAPX_IDLE_OFF;
++		/* We set 'stopped' even if sending DONE fails, to ensure that
++		   our caller doesn't try to submit its own command. */
+ 		stopped = TRUE;
++		if (!imapx_command_idle_stop (is, ex))
++			break;
++
++		idle->state = IMAPX_IDLE_OFF;
+ 		c(printf("Stopping idle after %ld seconds\n",
+ 			 (long)(now - idle->started)));
+ 	case IMAPX_IDLE_PENDING:
+-- 
+1.7.1
+

Added: unstable/evolution-data-server/debian/patches/106-Bug-630149-imapx_sync-never-returns-error.patch
URL: http://svn.debian.org/wsvn/pkg-evolution/unstable/evolution-data-server/debian/patches/106-Bug-630149-imapx_sync-never-returns-error.patch?rev=1727&op=file
==============================================================================
--- unstable/evolution-data-server/debian/patches/106-Bug-630149-imapx_sync-never-returns-error.patch (added)
+++ unstable/evolution-data-server/debian/patches/106-Bug-630149-imapx_sync-never-returns-error.patch Mon Sep 20 22:02:06 2010
@@ -1,0 +1,42 @@
+From b32377db3459e257b9b9ea83399619c42feebe9b Mon Sep 17 00:00:00 2001
+From: David Woodhouse <David.Woodhouse at intel.com>
+Date: Mon, 20 Sep 2010 13:29:20 +0100
+Subject: [PATCH 6/6] Bug 630149 - imapx_sync() never returns error
+
+---
+ camel/providers/imapx/camel-imapx-folder.c |   11 ++++++-----
+ 1 files changed, 6 insertions(+), 5 deletions(-)
+
+diff --git a/camel/providers/imapx/camel-imapx-folder.c b/camel/providers/imapx/camel-imapx-folder.c
+index bdd398d..e558949 100644
+--- a/camel/providers/imapx/camel-imapx-folder.c
++++ b/camel/providers/imapx/camel-imapx-folder.c
+@@ -173,19 +173,20 @@ imapx_sync (CamelFolder *folder, gboolean expunge, CamelException *ex)
+ 		ex = &eex;
+ 
+ 	server = camel_imapx_store_get_server(is, ex);
+-	if (server)
+-		camel_imapx_server_sync_changes (server, folder, ex);
++	if (!server)
++		return;
++
++	camel_imapx_server_sync_changes (server, folder, ex);
+ 
+ 	/* Sync twice - make sure deleted flags are written out,
+ 	   then sync again incase expunge changed anything */
+ 	camel_exception_clear(ex);
+ 
+-	if (server && expunge) {
++	if (expunge) {
+ 		camel_imapx_server_expunge(server, folder, ex);
+ 		camel_exception_clear(ex);
+ 	}
+-	if (server)
+-		camel_object_unref(server);
++	camel_object_unref(server);
+ }
+ 
+ static CamelMimeMessage *
+-- 
+1.7.1
+

Modified: unstable/evolution-data-server/debian/patches/series
URL: http://svn.debian.org/wsvn/pkg-evolution/unstable/evolution-data-server/debian/patches/series?rev=1727&op=diff
==============================================================================
--- unstable/evolution-data-server/debian/patches/series (original)
+++ unstable/evolution-data-server/debian/patches/series Mon Sep 20 22:02:06 2010
@@ -2,3 +2,8 @@
 25_mute-debug-messages.patch
 45_libcamel_providers_version.patch
 65_evolution-color.patch
+102-Bug-630135-No-UI-feedback-when-imapx-connection-fail.patch
+103-Bug-630150-imapx-attempts-to-connect-to-server-when-.patch
+104-Bug-630152-imapx_parser_thread-registers-wrong-opera.patch
+105-Bug-629916-imapx-fails-to-handle-errors-in-imapx_com.patch
+106-Bug-630149-imapx_sync-never-returns-error.patch




More information about the pkg-evolution-commits mailing list