diff options
author | Not Zed <NotZed@Ximian.com> | 2002-05-09 16:23:20 +0800 |
---|---|---|
committer | Michael Zucci <zucchi@src.gnome.org> | 2002-05-09 16:23:20 +0800 |
commit | 8f07d4c6ac7ffd3bff80d608058a7e7ba4554583 (patch) | |
tree | 32f359cd244fdb8b97bb323bb8be9dedb9ef5c19 /camel/camel-service.c | |
parent | 4554c20766d386909b765446af93418292293a7c (diff) | |
download | gsoc2013-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.c | 3 |
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) { |