aboutsummaryrefslogtreecommitdiff
path: root/libsylph/folder.c
diff options
context:
space:
mode:
authorhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2010-12-14 09:12:33 +0000
committerhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2010-12-14 09:12:33 +0000
commitf985d12decd4b43be0961afc38697970468f9042 (patch)
tree130be403d41bfb80054a9729ce349228fb84197f /libsylph/folder.c
parent4864d951f52cf49cad59c0e8721d290345d275c6 (diff)
disconnect all current sessions of remote folders when going offline.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@2754 ee746299-78ed-0310-b773-934348b2243d
Diffstat (limited to 'libsylph/folder.c')
-rw-r--r--libsylph/folder.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/libsylph/folder.c b/libsylph/folder.c
index 74ab3df7..97c13237 100644
--- a/libsylph/folder.c
+++ b/libsylph/folder.c
@@ -162,6 +162,26 @@ void folder_remote_folder_destroy(RemoteFolder *rfolder)
session_destroy(rfolder->session);
}
+gint folder_remote_folder_destroy_all_sessions(void)
+{
+ GList *list;
+ Folder *folder;
+ RemoteFolder *rfolder;
+
+ for (list = folder_list; list != NULL; list = list->next) {
+ folder = FOLDER(list->data);
+ if (FOLDER_IS_REMOTE(folder)) {
+ rfolder = REMOTE_FOLDER(folder);
+ if (rfolder->session) {
+ session_destroy(rfolder->session);
+ rfolder->session = NULL;
+ }
+ }
+ }
+
+ return 0;
+}
+
gint folder_scan_tree(Folder *folder)
{
g_return_val_if_fail(folder != NULL, -1);