Re: Balsa hangs when turning off SSL for IMAP



On 08/21/2004 12:05:25 PM, Miquel van Smoorenburg wrote:
[ snip ]
There's one weird issue remaining though. It's kind of hard to describe an actual problem, so I'll just document what I experienced step by step. It's reproducable (except for the "hang", that sometimes happens and sometimes doesn't), I tried this several times.

Hi Mike!

I was just working up some changes when you wrote. When you change the properties of an IMAP folder containing special mailboxes, or of the mailboxes themselves, while they're still shown at the top level instead of in the folder tree, the config file isn't kept consistent. I was seeing some similar misbehavior. Try the attached.

Best,

Peter
Index: src/mailbox-node.c
===================================================================
RCS file: /cvs/gnome/balsa/src/mailbox-node.c,v
retrieving revision 1.87
diff -u -r1.87 mailbox-node.c
--- src/mailbox-node.c	19 Aug 2004 13:38:35 -0000	1.87
+++ src/mailbox-node.c	21 Aug 2004 13:46:41 -0000
@@ -217,6 +217,13 @@
     g_free(mn->dir);           mn->dir = NULL;
     g_free(mn->config_prefix); mn->config_prefix = NULL;
 
+    if (mn->server) {
+	g_signal_handlers_disconnect_matched(mn->server,
+                                             G_SIGNAL_MATCH_DATA, 0,
+					     (GQuark) 0, NULL, NULL, mn);
+	mn->server = NULL;
+    }
+
     G_OBJECT_CLASS(parent_class)->finalize(G_OBJECT(object));
 }
 
Index: src/save-restore.c
===================================================================
RCS file: /cvs/gnome/balsa/src/save-restore.c,v
retrieving revision 1.291
diff -u -r1.291 save-restore.c
--- src/save-restore.c	20 Aug 2004 10:35:54 -0000	1.291
+++ src/save-restore.c	21 Aug 2004 13:46:41 -0000
@@ -505,10 +505,14 @@
     mailbox = libbalsa_mailbox_new_from_config(prefix);
     if (mailbox == NULL)
 	return FALSE;
-    if (LIBBALSA_IS_MAILBOX_REMOTE(mailbox))
-        libbalsa_server_connect_signals(LIBBALSA_MAILBOX_REMOTE_SERVER
-                                        (mailbox),
+    if (LIBBALSA_IS_MAILBOX_REMOTE(mailbox)) {
+	LibBalsaServer *server = LIBBALSA_MAILBOX_REMOTE_SERVER(mailbox);
+        libbalsa_server_connect_signals(server,
                                         G_CALLBACK(ask_password), mailbox);
+	g_signal_connect_swapped(server, "set-host",
+                                 G_CALLBACK(config_mailbox_update),
+				 mailbox);
+    }
 
     if (LIBBALSA_IS_MAILBOX_POP3(mailbox)) {
         g_signal_connect(G_OBJECT(mailbox),
@@ -561,8 +565,12 @@
 
     g_return_val_if_fail(prefix != NULL, FALSE);
 
-    if( (folder = balsa_mailbox_node_new_from_config(prefix)) )
+    if( (folder = balsa_mailbox_node_new_from_config(prefix)) ) {
+	g_signal_connect_swapped(folder->server, "set-host",
+                                 G_CALLBACK(config_folder_update),
+				 folder);
 	balsa_mblist_mailbox_node_append(NULL, folder);
+    }
 
     return folder != NULL;
 }				/* config_folder_init */



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]