diff options
author | Milan Crha <mcrha@redhat.com> | 2011-06-21 18:29:33 +0800 |
---|---|---|
committer | Rodrigo Moya <rodrigo@gnome-db.org> | 2011-06-30 00:42:31 +0800 |
commit | d5fa5311aa55047f8922f5e706f30458c6290369 (patch) | |
tree | 2646d80ce01a731cb0e886f4d9e4f9d0e511d5dc /mail/mail-ops.c | |
parent | 09661e707754a6acf50be1c78f429e97b2e25fdf (diff) | |
download | gsoc2013-evolution-d5fa5311aa55047f8922f5e706f30458c6290369.tar.gz gsoc2013-evolution-d5fa5311aa55047f8922f5e706f30458c6290369.tar.zst gsoc2013-evolution-d5fa5311aa55047f8922f5e706f30458c6290369.zip |
Bug #648468 - Disconnect service after mail fetching is done
Diffstat (limited to 'mail/mail-ops.c')
-rw-r--r-- | mail/mail-ops.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/mail/mail-ops.c b/mail/mail-ops.c index 85805ffa5c..0b3e27d24e 100644 --- a/mail/mail-ops.c +++ b/mail/mail-ops.c @@ -214,6 +214,7 @@ fetch_mail_exec (struct _fetch_mail_msg *m, CamelFolder *folder = NULL; CamelURL *url; const gchar *uid; + gboolean is_local_delivery; gint i; fm->destination = e_mail_local_get_folder ( @@ -223,7 +224,8 @@ fetch_mail_exec (struct _fetch_mail_msg *m, g_object_ref (fm->destination); url = camel_service_get_camel_url (CAMEL_SERVICE (m->store)); - if (em_utils_is_local_delivery_mbox_file (url)) { + is_local_delivery = em_utils_is_local_delivery_mbox_file (url); + if (is_local_delivery) { gchar *path; gchar *url_string; @@ -333,6 +335,11 @@ fail: g_object_unref (fm->driver); fm->driver = NULL; } + + /* also disconnect if not a local delivery mbox; + there is no need to keep the connection alive forever */ + if (!is_local_delivery) + camel_service_disconnect_sync (CAMEL_SERVICE (m->store), TRUE, NULL); } static void |