Mercurial > pidgin.yaz
comparison src/connection.c @ 5740:6ec7b32ab1df
[gaim-migrate @ 6164]
Hopefully fixed an infinite loop bug on disconnect, but I'm not holding my
breath.
committer: Tailor Script <tailor@pidgin.im>
author | Christian Hammond <chipx86@chipx86.com> |
---|---|
date | Wed, 04 Jun 2003 07:28:36 +0000 |
parents | 2e9f040f6b66 |
children | 1b5e6e6e80e9 |
comparison
equal
deleted
inserted
replaced
5739:edf4d443e671 | 5740:6ec7b32ab1df |
---|---|
109 gaim_connection_disconnect(GaimConnection *gc) | 109 gaim_connection_disconnect(GaimConnection *gc) |
110 { | 110 { |
111 GList *wins; | 111 GList *wins; |
112 | 112 |
113 g_return_if_fail(gc != NULL); | 113 g_return_if_fail(gc != NULL); |
114 g_return_if_fail(gaim_connection_get_state(gc) != GAIM_DISCONNECTED); | 114 |
115 | 115 if (gaim_connection_get_state(gc) != GAIM_DISCONNECTED) { |
116 if (gaim_connection_get_state(gc) != GAIM_CONNECTING) | 116 if (gaim_connection_get_state(gc) != GAIM_CONNECTING) |
117 gaim_blist_remove_account(gaim_connection_get_account(gc)); | 117 gaim_blist_remove_account(gaim_connection_get_account(gc)); |
118 | 118 |
119 serv_close(gc); | 119 serv_close(gc); |
120 | 120 |
121 gaim_connection_set_state(gc, GAIM_DISCONNECTED); | 121 gaim_connection_set_state(gc, GAIM_DISCONNECTED); |
122 | 122 |
123 connections = g_list_remove(connections, gc); | 123 connections = g_list_remove(connections, gc); |
124 | 124 |
125 gaim_event_broadcast(event_signoff, gc); | 125 gaim_event_broadcast(event_signoff, gc); |
126 system_log(log_signoff, gc, NULL, OPT_LOG_BUDDY_SIGNON | OPT_LOG_MY_SIGNON); | 126 system_log(log_signoff, gc, NULL, |
127 | 127 OPT_LOG_BUDDY_SIGNON | OPT_LOG_MY_SIGNON); |
128 /* | 128 |
129 * XXX This is a hack! Remove this and replace it with a better event | 129 /* |
130 * notification system. | 130 * XXX This is a hack! Remove this and replace it with a better event |
131 */ | 131 * notification system. |
132 for (wins = gaim_get_windows(); wins != NULL; wins = wins->next) { | 132 */ |
133 GaimWindow *win = (GaimWindow *)wins->data; | 133 for (wins = gaim_get_windows(); wins != NULL; wins = wins->next) { |
134 gaim_conversation_update(gaim_window_get_conversation_at(win, 0), | 134 GaimWindow *win = (GaimWindow *)wins->data; |
135 GAIM_CONV_ACCOUNT_OFFLINE); | 135 gaim_conversation_update(gaim_window_get_conversation_at(win, 0), |
136 } | 136 GAIM_CONV_ACCOUNT_OFFLINE); |
137 | 137 } |
138 gaim_request_close_with_handle(gc); | 138 |
139 gaim_notify_close_with_handle(gc); | 139 gaim_request_close_with_handle(gc); |
140 | 140 gaim_notify_close_with_handle(gc); |
141 update_privacy_connections(); | 141 |
142 update_privacy_connections(); | |
143 } | |
142 | 144 |
143 gaim_connection_destroy(gc); | 145 gaim_connection_destroy(gc); |
144 | 146 |
145 /* XXX More UI stuff! */ | 147 /* XXX More UI stuff! */ |
146 if (connections != NULL) | 148 if (connections != NULL) |