# HG changeset patch # User Mark Doliner # Date 1057354195 0 # Node ID d4caf585f6ff27b9ebb208c742cb015ab426b4a9 # Parent 968a00c9f230a543983b1f0ba9c034cab9983332 [gaim-migrate @ 6468] Nizathan: I'm reverting your connection.c changes that were supposed to fix jabber (at least, I hope so). It was causing aim to crash on signon because do_away_menu() was getting called when the aim gc existed, but was signed offline (and the aim away menu thing looks at gc->data, which has already been freed by this point). You should talk to Christian if you have any questions, because I don't really know what's going on :-) committer: Tailor Script diff -r 968a00c9f230 -r d4caf585f6ff src/connection.c --- a/src/connection.c Fri Jul 04 19:16:48 2003 +0000 +++ b/src/connection.c Fri Jul 04 21:29:55 2003 +0000 @@ -50,8 +50,6 @@ gaim_connection_set_account(gc, account); gaim_account_set_connection(account, gc); - connections = g_list_append(connections, gc); - return gc; } @@ -71,8 +69,6 @@ gaim_debug(GAIM_DEBUG_INFO, "connection", "Destroying connection %p\n", gc); - connections = g_list_remove(connections, gc); - account = gaim_connection_get_account(gc); gaim_account_set_connection(account, NULL); @@ -122,6 +118,8 @@ gaim_debug(GAIM_DEBUG_INFO, "connection", "Calling serv_login\n"); + connections = g_list_append(connections, gc); + serv_login(account); } @@ -149,6 +147,8 @@ serv_close(gc); + connections = g_list_remove(connections, gc); + gaim_connection_set_state(gc, GAIM_DISCONNECTED); gaim_event_broadcast(event_signoff, gc); @@ -348,19 +348,6 @@ ops->notice(gc, text); } -static gboolean disconnect_conn_cb(gpointer data) -{ - GaimAccount *account = (GaimAccount *)data; - GaimConnection *gc; - - gc = gaim_account_get_connection(account); - - if (gc != NULL) - gaim_connection_disconnect(data); - - return FALSE; -} - void gaim_connection_error(GaimConnection *gc, const char *text) { @@ -374,7 +361,7 @@ if (ops != NULL && ops->disconnected != NULL) ops->disconnected(gc, text); - g_timeout_add(0, disconnect_conn_cb, gaim_connection_get_account(gc)); + gaim_connection_disconnect(gc); } void