summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNot Zed <NotZed@Ximian.com>2002-05-10 01:28:58 +0000
committerMichael Zucci <zucchi@src.gnome.org>2002-05-10 01:28:58 +0000
commit5b8d0963afb8f317dca74fc77deb5fcbd7e4d49b (patch)
tree2174e05be7825876346a7744e6e838acf1909bc2
parent66fc7ded89441484153c249639f7599cdafb34de (diff)
downloadevolution-data-server-5b8d0963afb8f317dca74fc77deb5fcbd7e4d49b.tar.gz
Instead of testing for SERVICE_CONNECTED, we need to also handle
2002-05-09 Not Zed <NotZed@Ximian.com> * camel-service.c (camel_service_disconnect): Instead of testing for SERVICE_CONNECTED, we need to also handle SERVICE_CONNECTING too, as it will often have setup some details before it failed. Make it !DISCONNECTED (and !DISCONNECTING for recursive calls, which happen). Fixes #23782, and maybe also #21604 and many other random crashes.
-rw-r--r--camel/ChangeLog9
-rw-r--r--camel/camel-service.c3
2 files changed, 11 insertions, 1 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog
index fc1ace103..88fa2f2f6 100644
--- a/camel/ChangeLog
+++ b/camel/ChangeLog
@@ -1,3 +1,12 @@
+2002-05-09 Not Zed <NotZed@Ximian.com>
+
+ * camel-service.c (camel_service_disconnect): Instead of testing
+ for SERVICE_CONNECTED, we need to also handle SERVICE_CONNECTING
+ too, as it will often have setup some details before it failed.
+ Make it !DISCONNECTED (and !DISCONNECTING for recursive calls,
+ which happen). Fixes #23782, and maybe also #21604 and many other
+ random crashes.
+
2002-05-02 Jeffrey Stedfast <fejj@ximian.com>
* camel-mime-utils.c (header_decode_mailbox): Fixed the fix for
diff --git a/camel/camel-service.c b/camel/camel-service.c
index f2322c95c..6b245b8b4 100644
--- a/camel/camel-service.c
+++ b/camel/camel-service.c
@@ -307,7 +307,8 @@ camel_service_disconnect (CamelService *service, gboolean clean,
CAMEL_SERVICE_LOCK (service, connect_lock);
- if (service->status == CAMEL_SERVICE_CONNECTED) {
+ if (service->status != CAMEL_SERVICE_DISCONNECTED
+ && service->status != CAMEL_SERVICE_DISCONNECTING) {
CAMEL_SERVICE_LOCK (service, connect_op_lock);
service->connect_op = camel_operation_registered ();
if (!service->connect_op) {