aboutsummaryrefslogtreecommitdiffstats
path: root/camel/camel-service.c
diff options
context:
space:
mode:
authorNot Zed <NotZed@Ximian.com>2002-05-09 16:23:20 +0800
committerMichael Zucci <zucchi@src.gnome.org>2002-05-09 16:23:20 +0800
commit8f07d4c6ac7ffd3bff80d608058a7e7ba4554583 (patch)
tree32f359cd244fdb8b97bb323bb8be9dedb9ef5c19 /camel/camel-service.c
parent4554c20766d386909b765446af93418292293a7c (diff)
downloadgsoc2013-evolution-8f07d4c6ac7ffd3bff80d608058a7e7ba4554583.tar.gz
gsoc2013-evolution-8f07d4c6ac7ffd3bff80d608058a7e7ba4554583.tar.zst
gsoc2013-evolution-8f07d4c6ac7ffd3bff80d608058a7e7ba4554583.zip
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. svn path=/trunk/; revision=16730
Diffstat (limited to 'camel/camel-service.c')
-rw-r--r--camel/camel-service.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/camel/camel-service.c b/camel/camel-service.c
index f83c3fe612..c704852a7c 100644
--- a/camel/camel-service.c
+++ b/camel/camel-service.c
@@ -430,7 +430,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) {