Mercurial > pidgin
annotate src/connection.c @ 10311:b7566fc34c6c
[gaim-migrate @ 11505]
Hitting the enter key when you're cursor is in the alias field of the
Add Chat dialog now activates the dialogs default action.
Closes bug 1075200 and patch 1078079. Thanks to Andrew Hart for
taking a stab at this and wounding, but not killing. Killing is wrong!
committer: Tailor Script <tailor@pidgin.im>
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Fri, 03 Dec 2004 04:02:10 +0000 |
parents | 56b53036e48c |
children | b234ad7e0dfe |
rev | line source |
---|---|
5563 | 1 /** |
2 * @file connection.c Connection API | |
3 * @ingroup core | |
4 * | |
5 * gaim | |
6 * | |
8046 | 7 * Gaim is the legal property of its developers, whose names are too numerous |
8 * to list here. Please refer to the COPYRIGHT file distributed with this | |
9 * source distribution. | |
5631 | 10 * |
5563 | 11 * This program is free software; you can redistribute it and/or modify |
12 * it under the terms of the GNU General Public License as published by | |
13 * the Free Software Foundation; either version 2 of the License, or | |
14 * (at your option) any later version. | |
15 * | |
16 * This program is distributed in the hope that it will be useful, | |
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
19 * GNU General Public License for more details. | |
20 * | |
21 * You should have received a copy of the GNU General Public License | |
22 * along with this program; if not, write to the Free Software | |
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
24 */ | |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5859
diff
changeset
|
25 #include "internal.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5859
diff
changeset
|
26 #include "blist.h" |
5563 | 27 #include "connection.h" |
5717 | 28 #include "debug.h" |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5859
diff
changeset
|
29 #include "log.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5859
diff
changeset
|
30 #include "notify.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5859
diff
changeset
|
31 #include "prefs.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5859
diff
changeset
|
32 #include "request.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5859
diff
changeset
|
33 #include "server.h" |
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
34 #include "signals.h" |
6106 | 35 #include "util.h" |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5859
diff
changeset
|
36 |
5563 | 37 static GList *connections = NULL; |
5564
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
38 static GList *connections_connecting = NULL; |
5563 | 39 static GaimConnectionUiOps *connection_ui_ops = NULL; |
40 | |
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
41 static int connections_handle; |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5859
diff
changeset
|
42 |
5563 | 43 GaimConnection * |
44 gaim_connection_new(GaimAccount *account) | |
45 { | |
46 GaimConnection *gc; | |
47 | |
48 g_return_val_if_fail(account != NULL, NULL); | |
49 | |
50 gc = g_new0(GaimConnection, 1); | |
51 | |
7956 | 52 gc->prpl = gaim_find_prpl(gaim_account_get_protocol_id(account)); |
5563 | 53 |
54 gaim_connection_set_account(gc, account); | |
55 gaim_account_set_connection(account, gc); | |
56 | |
57 return gc; | |
58 } | |
59 | |
60 void | |
61 gaim_connection_destroy(GaimConnection *gc) | |
62 { | |
5741
1b5e6e6e80e9
[gaim-migrate @ 6165]
Christian Hammond <chipx86@chipx86.com>
parents:
5740
diff
changeset
|
63 GaimAccount *account; |
1b5e6e6e80e9
[gaim-migrate @ 6165]
Christian Hammond <chipx86@chipx86.com>
parents:
5740
diff
changeset
|
64 |
5563 | 65 g_return_if_fail(gc != NULL); |
66 | |
67 if (gaim_connection_get_state(gc) != GAIM_DISCONNECTED) { | |
68 gaim_connection_disconnect(gc); | |
69 | |
70 return; | |
71 } | |
72 | |
10301 | 73 gaim_debug_info("connection", "Destroying connection %p\n", gc); |
5930
03f1d6cd784c
[gaim-migrate @ 6370]
Christian Hammond <chipx86@chipx86.com>
parents:
5926
diff
changeset
|
74 |
5741
1b5e6e6e80e9
[gaim-migrate @ 6165]
Christian Hammond <chipx86@chipx86.com>
parents:
5740
diff
changeset
|
75 account = gaim_connection_get_account(gc); |
1b5e6e6e80e9
[gaim-migrate @ 6165]
Christian Hammond <chipx86@chipx86.com>
parents:
5740
diff
changeset
|
76 gaim_account_set_connection(account, NULL); |
1b5e6e6e80e9
[gaim-migrate @ 6165]
Christian Hammond <chipx86@chipx86.com>
parents:
5740
diff
changeset
|
77 |
5563 | 78 if (gc->display_name != NULL) |
79 g_free(gc->display_name); | |
80 | |
6393 | 81 if (gc->disconnect_timeout) |
8287
ef881489396e
[gaim-migrate @ 9011]
Christian Hammond <chipx86@chipx86.com>
parents:
8273
diff
changeset
|
82 gaim_timeout_remove(gc->disconnect_timeout); |
6393 | 83 |
5563 | 84 g_free(gc); |
85 } | |
86 | |
10301 | 87 static void |
88 request_pass_ok_cb(GaimAccount *account, const char *entry) | |
6109 | 89 { |
90 gaim_account_set_password(account, (*entry != '\0') ? entry : NULL); | |
91 | |
6110 | 92 gaim_account_connect(account); |
6109 | 93 } |
94 | |
6581 | 95 void |
96 gaim_connection_register(GaimConnection *gc) | |
97 { | |
98 GaimAccount *account; | |
99 GaimConnectionUiOps *ops; | |
100 GaimPluginProtocolInfo *prpl_info = NULL; | |
101 | |
102 g_return_if_fail(gc != NULL); | |
103 | |
10301 | 104 gaim_debug_info("connection", "Registering. gc = %p\n", gc); |
6581 | 105 |
7035
feb3d21a7794
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
106 ops = gaim_connections_get_ui_ops(); |
6581 | 107 |
108 if (gc->prpl != NULL) | |
8130
ff88d4cbf4db
[gaim-migrate @ 8835]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
109 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl); |
ff88d4cbf4db
[gaim-migrate @ 8835]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
110 else |
ff88d4cbf4db
[gaim-migrate @ 8835]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
111 { |
ff88d4cbf4db
[gaim-migrate @ 8835]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
112 gchar *message = g_strdup_printf(_("Missing protocol plugin for %s"), |
ff88d4cbf4db
[gaim-migrate @ 8835]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
113 gaim_account_get_username(gaim_connection_get_account(gc))); |
6581 | 114 |
10301 | 115 gaim_debug_error("connection", "Could not get prpl info for %p\n", gc); |
6581 | 116 gaim_notify_error(NULL, _("Registration Error"), |
117 message, NULL); | |
118 g_free(message); | |
119 return; | |
120 } | |
121 | |
8130
ff88d4cbf4db
[gaim-migrate @ 8835]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
122 if (prpl_info->register_user == NULL) |
ff88d4cbf4db
[gaim-migrate @ 8835]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
123 return; |
ff88d4cbf4db
[gaim-migrate @ 8835]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
124 |
6581 | 125 account = gaim_connection_get_account(gc); |
126 | |
127 if (gaim_connection_get_state(gc) != GAIM_DISCONNECTED) | |
128 return; | |
129 | |
130 gaim_connection_set_state(gc, GAIM_CONNECTING); | |
131 | |
132 connections = g_list_append(connections, gc); | |
133 | |
134 gaim_signal_emit(gaim_connections_get_handle(), "signing-on", gc); | |
135 | |
136 /* set this so we don't auto-reconnect after registering */ | |
137 gc->wants_to_die = TRUE; | |
138 | |
10301 | 139 gaim_debug_info("connection", "Calling register_user\n"); |
6581 | 140 |
141 prpl_info->register_user(account); | |
142 } | |
143 | |
6109 | 144 |
5563 | 145 void |
146 gaim_connection_connect(GaimConnection *gc) | |
147 { | |
148 GaimAccount *account; | |
149 GaimConnectionUiOps *ops; | |
150 GaimPluginProtocolInfo *prpl_info = NULL; | |
151 | |
152 g_return_if_fail(gc != NULL); | |
153 | |
10301 | 154 gaim_debug_info("connection", "Connecting. gc = %p\n", gc); |
5930
03f1d6cd784c
[gaim-migrate @ 6370]
Christian Hammond <chipx86@chipx86.com>
parents:
5926
diff
changeset
|
155 |
7035
feb3d21a7794
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
156 ops = gaim_connections_get_ui_ops(); |
5563 | 157 |
6136
e391813214a6
[gaim-migrate @ 6610]
Christian Hammond <chipx86@chipx86.com>
parents:
6113
diff
changeset
|
158 if (gc->prpl != NULL) |
8131
968425e5da2f
[gaim-migrate @ 8836]
Christian Hammond <chipx86@chipx86.com>
parents:
8130
diff
changeset
|
159 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl); |
6136
e391813214a6
[gaim-migrate @ 6610]
Christian Hammond <chipx86@chipx86.com>
parents:
6113
diff
changeset
|
160 else { |
8130
ff88d4cbf4db
[gaim-migrate @ 8835]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
161 gchar *message = g_strdup_printf(_("Missing protocol plugin for %s"), |
ff88d4cbf4db
[gaim-migrate @ 8835]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
162 gaim_account_get_username(gaim_connection_get_account(gc))); |
6136
e391813214a6
[gaim-migrate @ 6610]
Christian Hammond <chipx86@chipx86.com>
parents:
6113
diff
changeset
|
163 |
10301 | 164 gaim_debug_error("connection", "Could not get prpl info for %p\n", gc); |
165 gaim_notify_error(NULL, _("Connection Error"), message, NULL); | |
6136
e391813214a6
[gaim-migrate @ 6610]
Christian Hammond <chipx86@chipx86.com>
parents:
6113
diff
changeset
|
166 g_free(message); |
e391813214a6
[gaim-migrate @ 6610]
Christian Hammond <chipx86@chipx86.com>
parents:
6113
diff
changeset
|
167 return; |
e391813214a6
[gaim-migrate @ 6610]
Christian Hammond <chipx86@chipx86.com>
parents:
6113
diff
changeset
|
168 } |
5563 | 169 |
170 account = gaim_connection_get_account(gc); | |
171 | |
6109 | 172 if (gaim_connection_get_state(gc) != GAIM_DISCONNECTED) |
173 return; | |
174 | |
6036 | 175 if (!(prpl_info->options & OPT_PROTO_NO_PASSWORD) && |
6231 | 176 !(prpl_info->options & OPT_PROTO_PASSWORD_OPTIONAL) && |
177 gaim_account_get_password(account) == NULL) { | |
6111 | 178 gchar *primary; |
6231 | 179 gchar *escaped; |
180 const gchar *username = gaim_account_get_username(account); | |
181 | |
10301 | 182 gaim_debug_info("connection", "Requesting password\n"); |
6468
4aa3b1cec52b
[gaim-migrate @ 6977]
Christian Hammond <chipx86@chipx86.com>
parents:
6460
diff
changeset
|
183 gaim_connection_destroy(gc); |
6231 | 184 escaped = g_markup_escape_text(username, strlen(username)); |
9699 | 185 primary = g_strdup_printf(_("Enter password for %s (%s)"), escaped, |
186 gaim_account_get_protocol_name(account)); | |
8697 | 187 gaim_request_input(gc, NULL, primary, NULL, NULL, FALSE, TRUE, NULL, |
6109 | 188 _("OK"), G_CALLBACK(request_pass_ok_cb), |
6110 | 189 _("Cancel"), NULL, account); |
6111 | 190 g_free(primary); |
6231 | 191 g_free(escaped); |
5563 | 192 |
193 return; | |
194 } | |
195 | |
196 gaim_connection_set_state(gc, GAIM_CONNECTING); | |
197 | |
6507 | 198 connections = g_list_append(connections, gc); |
199 | |
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
200 gaim_signal_emit(gaim_connections_get_handle(), "signing-on", gc); |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
201 |
10301 | 202 gaim_debug_info("connection", "Calling serv_login\n"); |
5581
3a9b54f260e3
[gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents:
5571
diff
changeset
|
203 |
5563 | 204 serv_login(account); |
205 } | |
206 | |
207 void | |
208 gaim_connection_disconnect(GaimConnection *gc) | |
209 { | |
5926
6c22d37c6a3c
[gaim-migrate @ 6366]
Christian Hammond <chipx86@chipx86.com>
parents:
5905
diff
changeset
|
210 GaimAccount *account; |
5563 | 211 GList *wins; |
10052 | 212 GaimPresence *presence = NULL; |
5563 | 213 |
214 g_return_if_fail(gc != NULL); | |
215 | |
5926
6c22d37c6a3c
[gaim-migrate @ 6366]
Christian Hammond <chipx86@chipx86.com>
parents:
5905
diff
changeset
|
216 account = gaim_connection_get_account(gc); |
6c22d37c6a3c
[gaim-migrate @ 6366]
Christian Hammond <chipx86@chipx86.com>
parents:
5905
diff
changeset
|
217 |
6c22d37c6a3c
[gaim-migrate @ 6366]
Christian Hammond <chipx86@chipx86.com>
parents:
5905
diff
changeset
|
218 if (gaim_account_get_connection(account) != NULL) { |
6c22d37c6a3c
[gaim-migrate @ 6366]
Christian Hammond <chipx86@chipx86.com>
parents:
5905
diff
changeset
|
219 gaim_account_disconnect(account); |
6c22d37c6a3c
[gaim-migrate @ 6366]
Christian Hammond <chipx86@chipx86.com>
parents:
5905
diff
changeset
|
220 return; |
6c22d37c6a3c
[gaim-migrate @ 6366]
Christian Hammond <chipx86@chipx86.com>
parents:
5905
diff
changeset
|
221 } |
6c22d37c6a3c
[gaim-migrate @ 6366]
Christian Hammond <chipx86@chipx86.com>
parents:
5905
diff
changeset
|
222 |
10301 | 223 gaim_debug_info("connection", "Disconnecting connection %p\n", gc); |
5930
03f1d6cd784c
[gaim-migrate @ 6370]
Christian Hammond <chipx86@chipx86.com>
parents:
5926
diff
changeset
|
224 |
5740
6ec7b32ab1df
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
225 if (gaim_connection_get_state(gc) != GAIM_DISCONNECTED) { |
6ec7b32ab1df
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
226 if (gaim_connection_get_state(gc) != GAIM_CONNECTING) |
6ec7b32ab1df
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
227 gaim_blist_remove_account(gaim_connection_get_account(gc)); |
5563 | 228 |
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
229 gaim_signal_emit(gaim_connections_get_handle(), "signing-off", gc); |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
230 |
5740
6ec7b32ab1df
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
231 serv_close(gc); |
5563 | 232 |
6533 | 233 connections = g_list_remove(connections, gc); |
234 | |
5859
022786c7ab53
[gaim-migrate @ 6290]
Christian Hammond <chipx86@chipx86.com>
parents:
5788
diff
changeset
|
235 gaim_connection_set_state(gc, GAIM_DISCONNECTED); |
5563 | 236 |
7431 | 237 /* LOG system_log(log_signoff, gc, NULL, |
238 OPT_LOG_BUDDY_SIGNON | OPT_LOG_MY_SIGNON); */ | |
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
239 gaim_signal_emit(gaim_connections_get_handle(), "signed-off", gc); |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
240 |
10052 | 241 presence = gaim_account_get_presence(account); |
242 if (gaim_presence_is_online(presence) == TRUE) | |
243 gaim_presence_set_status_active(presence, "offline", TRUE); | |
5615
6500a6c8d679
[gaim-migrate @ 6022]
Christian Hammond <chipx86@chipx86.com>
parents:
5581
diff
changeset
|
244 |
5740
6ec7b32ab1df
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
245 /* |
6ec7b32ab1df
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
246 * XXX This is a hack! Remove this and replace it with a better event |
6ec7b32ab1df
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
247 * notification system. |
6ec7b32ab1df
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
248 */ |
6ec7b32ab1df
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
249 for (wins = gaim_get_windows(); wins != NULL; wins = wins->next) { |
7118
bf630f7dfdcd
[gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents:
7035
diff
changeset
|
250 GaimConvWindow *win = (GaimConvWindow *)wins->data; |
bf630f7dfdcd
[gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents:
7035
diff
changeset
|
251 gaim_conversation_update(gaim_conv_window_get_conversation_at(win, 0), |
5740
6ec7b32ab1df
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
252 GAIM_CONV_ACCOUNT_OFFLINE); |
6ec7b32ab1df
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
253 } |
6ec7b32ab1df
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
254 |
6ec7b32ab1df
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
255 gaim_request_close_with_handle(gc); |
6ec7b32ab1df
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
256 gaim_notify_close_with_handle(gc); |
5563 | 257 } |
258 | |
9848 | 259 if (!gaim_account_get_remember_password(account)) |
10301 | 260 gaim_account_set_password(account, NULL); |
9848 | 261 |
5622
70ae81fc802f
[gaim-migrate @ 6029]
Christian Hammond <chipx86@chipx86.com>
parents:
5615
diff
changeset
|
262 gaim_connection_destroy(gc); |
5563 | 263 } |
264 | |
6029 | 265 gboolean |
266 gaim_connection_disconnect_cb(gpointer data) | |
267 { | |
6076 | 268 GaimAccount *account = data; |
9854 | 269 GaimConnection *gc = gaim_account_get_connection(account); |
9848 | 270 |
271 if (!gaim_account_get_remember_password(account)) | |
272 gaim_account_set_password(account,NULL); | |
273 | |
10301 | 274 if (gc != NULL) |
6076 | 275 gaim_connection_disconnect(gc); |
6029 | 276 |
277 return FALSE; | |
278 } | |
279 | |
5563 | 280 /* |
8130
ff88d4cbf4db
[gaim-migrate @ 8835]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
281 * d:)->-< |
5563 | 282 * |
283 * d:O-\-< | |
8130
ff88d4cbf4db
[gaim-migrate @ 8835]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
284 * |
5563 | 285 * d:D-/-< |
286 * | |
287 * d8D->-< DANCE! | |
288 */ | |
289 | |
290 void | |
291 gaim_connection_set_state(GaimConnection *gc, GaimConnectionState state) | |
292 { | |
5885
02569519d0cc
[gaim-migrate @ 6317]
Christian Hammond <chipx86@chipx86.com>
parents:
5883
diff
changeset
|
293 GaimConnectionUiOps *ops; |
02569519d0cc
[gaim-migrate @ 6317]
Christian Hammond <chipx86@chipx86.com>
parents:
5883
diff
changeset
|
294 |
5563 | 295 g_return_if_fail(gc != NULL); |
296 | |
5784
72fb22b9ac98
[gaim-migrate @ 6209]
Christian Hammond <chipx86@chipx86.com>
parents:
5741
diff
changeset
|
297 if (gc->state == state) |
72fb22b9ac98
[gaim-migrate @ 6209]
Christian Hammond <chipx86@chipx86.com>
parents:
5741
diff
changeset
|
298 return; |
72fb22b9ac98
[gaim-migrate @ 6209]
Christian Hammond <chipx86@chipx86.com>
parents:
5741
diff
changeset
|
299 |
5563 | 300 gc->state = state; |
301 | |
7035
feb3d21a7794
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
302 ops = gaim_connections_get_ui_ops(); |
5885
02569519d0cc
[gaim-migrate @ 6317]
Christian Hammond <chipx86@chipx86.com>
parents:
5883
diff
changeset
|
303 |
5905
dbe2a2174be9
[gaim-migrate @ 6337]
Christian Hammond <chipx86@chipx86.com>
parents:
5885
diff
changeset
|
304 if (gc->state == GAIM_CONNECTING) { |
dbe2a2174be9
[gaim-migrate @ 6337]
Christian Hammond <chipx86@chipx86.com>
parents:
5885
diff
changeset
|
305 connections_connecting = g_list_append(connections_connecting, gc); |
dbe2a2174be9
[gaim-migrate @ 6337]
Christian Hammond <chipx86@chipx86.com>
parents:
5885
diff
changeset
|
306 } |
dbe2a2174be9
[gaim-migrate @ 6337]
Christian Hammond <chipx86@chipx86.com>
parents:
5885
diff
changeset
|
307 else { |
5885
02569519d0cc
[gaim-migrate @ 6317]
Christian Hammond <chipx86@chipx86.com>
parents:
5883
diff
changeset
|
308 connections_connecting = g_list_remove(connections_connecting, gc); |
5905
dbe2a2174be9
[gaim-migrate @ 6337]
Christian Hammond <chipx86@chipx86.com>
parents:
5885
diff
changeset
|
309 } |
5885
02569519d0cc
[gaim-migrate @ 6317]
Christian Hammond <chipx86@chipx86.com>
parents:
5883
diff
changeset
|
310 |
5563 | 311 if (gc->state == GAIM_CONNECTED) { |
6695 | 312 GaimBlistNode *gnode,*cnode,*bnode; |
5563 | 313 GList *wins; |
9285 | 314 GList *add_buds = NULL; |
10052 | 315 GaimAccount *account; |
316 GaimPresence *presence; | |
317 | |
318 account = gaim_connection_get_account(gc); | |
319 presence = gaim_account_get_presence(account); | |
5563 | 320 |
321 /* Set the time the account came online */ | |
322 time(&gc->login_time); | |
323 | |
10301 | 324 /* XXX - STATUS - Need to handle away at login here. */ |
325 if (gaim_presence_is_online(presence) == FALSE) | |
326 gaim_presence_set_status_active(presence, "online", TRUE); | |
327 | |
328 if (gaim_prefs_get_bool("/core/logging/log_system") && | |
329 gaim_prefs_get_bool("/core/logging/log_own_states")){ | |
330 GaimLog *log = gaim_account_get_log(account); | |
331 char *msg = g_strdup_printf("+++ %s signed on", | |
332 gaim_account_get_username(account)); | |
333 gaim_log_write(log, GAIM_MESSAGE_SYSTEM, | |
334 gaim_account_get_username(account), gc->login_time, | |
335 msg); | |
336 g_free(msg); | |
337 } | |
338 | |
5563 | 339 if (ops != NULL && ops->connected != NULL) |
340 ops->connected(gc); | |
341 | |
342 gaim_blist_show(); | |
8573 | 343 gaim_blist_add_account(account); |
5563 | 344 |
345 /* | |
346 * XXX This is a hack! Remove this and replace it with a better event | |
347 * notification system. | |
348 */ | |
349 for (wins = gaim_get_windows(); wins != NULL; wins = wins->next) { | |
7118
bf630f7dfdcd
[gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents:
7035
diff
changeset
|
350 GaimConvWindow *win = (GaimConvWindow *)wins->data; |
bf630f7dfdcd
[gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents:
7035
diff
changeset
|
351 gaim_conversation_update(gaim_conv_window_get_conversation_at(win, 0), |
5563 | 352 GAIM_CONV_ACCOUNT_ONLINE); |
353 } | |
354 | |
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
355 gaim_signal_emit(gaim_connections_get_handle(), "signed-on", gc); |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
356 |
5563 | 357 /* let the prpl know what buddies we pulled out of the local list */ |
10301 | 358 /* XXX - Remove this and let the prpl take care of it itself? */ |
5563 | 359 for (gnode = gaim_get_blist()->root; gnode; gnode = gnode->next) { |
360 if(!GAIM_BLIST_NODE_IS_GROUP(gnode)) | |
361 continue; | |
6695 | 362 for(cnode = gnode->child; cnode; cnode = cnode->next) { |
363 if(!GAIM_BLIST_NODE_IS_CONTACT(cnode)) | |
364 continue; | |
365 for(bnode = cnode->child; bnode; bnode = bnode->next) { | |
366 GaimBuddy *b; | |
367 if(!GAIM_BLIST_NODE_IS_BUDDY(bnode)) | |
368 continue; | |
369 | |
370 b = (GaimBuddy *)bnode; | |
5563 | 371 if(b->account == gc->account) { |
9285 | 372 add_buds = g_list_append(add_buds, b); |
5563 | 373 } |
374 } | |
375 } | |
376 } | |
377 | |
378 if(add_buds) { | |
379 serv_add_buddies(gc, add_buds); | |
380 g_list_free(add_buds); | |
381 } | |
382 | |
383 serv_set_permit_deny(gc); | |
384 } | |
5885
02569519d0cc
[gaim-migrate @ 6317]
Christian Hammond <chipx86@chipx86.com>
parents:
5883
diff
changeset
|
385 else if (gc->state == GAIM_DISCONNECTED) { |
8573 | 386 GaimAccount *account = gaim_connection_get_account(gc); |
387 | |
388 if(gaim_prefs_get_bool("/core/logging/log_system") && | |
389 gaim_prefs_get_bool("/core/logging/log_own_states")){ | |
390 GaimLog *log = gaim_account_get_log(account); | |
391 char *msg = g_strdup_printf("+++ %s signed off", | |
392 gaim_account_get_username(account)); | |
393 gaim_log_write(log, GAIM_MESSAGE_SYSTEM, | |
394 gaim_account_get_username(account), time(NULL), | |
395 msg); | |
9190
9e3289499977
[gaim-migrate @ 9985]
Christian Hammond <chipx86@chipx86.com>
parents:
9019
diff
changeset
|
396 g_free(msg); |
8573 | 397 } |
398 | |
399 gaim_account_destroy_log(account); | |
400 | |
5885
02569519d0cc
[gaim-migrate @ 6317]
Christian Hammond <chipx86@chipx86.com>
parents:
5883
diff
changeset
|
401 if (ops != NULL && ops->disconnected != NULL) |
9190
9e3289499977
[gaim-migrate @ 9985]
Christian Hammond <chipx86@chipx86.com>
parents:
9019
diff
changeset
|
402 ops->disconnected(gc); |
5564
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
403 } |
5563 | 404 } |
405 | |
406 void | |
407 gaim_connection_set_account(GaimConnection *gc, GaimAccount *account) | |
408 { | |
409 g_return_if_fail(gc != NULL); | |
410 g_return_if_fail(account != NULL); | |
411 | |
412 gc->account = account; | |
413 } | |
414 | |
415 void | |
416 gaim_connection_set_display_name(GaimConnection *gc, const char *name) | |
417 { | |
418 g_return_if_fail(gc != NULL); | |
419 | |
420 if (gc->display_name != NULL) | |
421 g_free(gc->display_name); | |
422 | |
423 gc->display_name = (name == NULL ? NULL : g_strdup(name)); | |
424 } | |
425 | |
426 GaimConnectionState | |
427 gaim_connection_get_state(const GaimConnection *gc) | |
428 { | |
429 g_return_val_if_fail(gc != NULL, GAIM_DISCONNECTED); | |
430 | |
431 return gc->state; | |
432 } | |
433 | |
434 GaimAccount * | |
435 gaim_connection_get_account(const GaimConnection *gc) | |
436 { | |
437 g_return_val_if_fail(gc != NULL, NULL); | |
438 | |
439 return gc->account; | |
440 } | |
441 | |
442 const char * | |
443 gaim_connection_get_display_name(const GaimConnection *gc) | |
444 { | |
445 g_return_val_if_fail(gc != NULL, NULL); | |
446 | |
447 return gc->display_name; | |
448 } | |
449 | |
450 void | |
451 gaim_connection_update_progress(GaimConnection *gc, const char *text, | |
452 size_t step, size_t count) | |
453 { | |
454 GaimConnectionUiOps *ops; | |
455 | |
456 g_return_if_fail(gc != NULL); | |
457 g_return_if_fail(text != NULL); | |
458 g_return_if_fail(step < count); | |
459 g_return_if_fail(count > 1); | |
460 | |
7035
feb3d21a7794
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
461 ops = gaim_connections_get_ui_ops(); |
5563 | 462 |
463 if (ops != NULL && ops->connect_progress != NULL) | |
464 ops->connect_progress(gc, text, step, count); | |
465 } | |
466 | |
467 void | |
5571
113090160626
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
468 gaim_connection_notice(GaimConnection *gc, const char *text) |
113090160626
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
469 { |
113090160626
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
470 GaimConnectionUiOps *ops; |
113090160626
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
471 |
113090160626
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
472 g_return_if_fail(gc != NULL); |
113090160626
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
473 g_return_if_fail(text != NULL); |
113090160626
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
474 |
7035
feb3d21a7794
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
475 ops = gaim_connections_get_ui_ops(); |
5571
113090160626
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
476 |
113090160626
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
477 if (ops != NULL && ops->notice != NULL) |
113090160626
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
478 ops->notice(gc, text); |
113090160626
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
479 } |
113090160626
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
480 |
113090160626
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
481 void |
5564
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
482 gaim_connection_error(GaimConnection *gc, const char *text) |
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
483 { |
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
484 GaimConnectionUiOps *ops; |
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
485 |
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
486 g_return_if_fail(gc != NULL); |
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
487 g_return_if_fail(text != NULL); |
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
488 |
6393 | 489 /* If we've already got one error, we don't need any more */ |
6460
ff4551719cc7
[gaim-migrate @ 6969]
Christian Hammond <chipx86@chipx86.com>
parents:
6393
diff
changeset
|
490 if (gc->disconnect_timeout) |
6393 | 491 return; |
492 | |
7035
feb3d21a7794
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
493 ops = gaim_connections_get_ui_ops(); |
5564
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
494 |
6460
ff4551719cc7
[gaim-migrate @ 6969]
Christian Hammond <chipx86@chipx86.com>
parents:
6393
diff
changeset
|
495 if (ops != NULL) { |
ff4551719cc7
[gaim-migrate @ 6969]
Christian Hammond <chipx86@chipx86.com>
parents:
6393
diff
changeset
|
496 if (ops->report_disconnect != NULL) |
ff4551719cc7
[gaim-migrate @ 6969]
Christian Hammond <chipx86@chipx86.com>
parents:
6393
diff
changeset
|
497 ops->report_disconnect(gc, text); |
ff4551719cc7
[gaim-migrate @ 6969]
Christian Hammond <chipx86@chipx86.com>
parents:
6393
diff
changeset
|
498 } |
5727 | 499 |
8273
f24172f53650
[gaim-migrate @ 8997]
Christian Hammond <chipx86@chipx86.com>
parents:
8131
diff
changeset
|
500 gc->disconnect_timeout = gaim_timeout_add(0, gaim_connection_disconnect_cb, |
6076 | 501 gaim_connection_get_account(gc)); |
5564
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
502 } |
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
503 |
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
504 void |
5563 | 505 gaim_connections_disconnect_all(void) |
506 { | |
507 GList *l; | |
6113 | 508 GaimConnection *gc; |
5563 | 509 |
6113 | 510 while ((l = gaim_connections_get_all()) != NULL) { |
511 gc = l->data; | |
512 gc->wants_to_die = TRUE; | |
513 gaim_connection_destroy(gc); | |
514 } | |
5563 | 515 } |
516 | |
517 GList * | |
518 gaim_connections_get_all(void) | |
519 { | |
520 return connections; | |
521 } | |
522 | |
5788
8c237274189f
[gaim-migrate @ 6213]
Christian Hammond <chipx86@chipx86.com>
parents:
5784
diff
changeset
|
523 GList * |
8c237274189f
[gaim-migrate @ 6213]
Christian Hammond <chipx86@chipx86.com>
parents:
5784
diff
changeset
|
524 gaim_connections_get_connecting(void) |
8c237274189f
[gaim-migrate @ 6213]
Christian Hammond <chipx86@chipx86.com>
parents:
5784
diff
changeset
|
525 { |
8c237274189f
[gaim-migrate @ 6213]
Christian Hammond <chipx86@chipx86.com>
parents:
5784
diff
changeset
|
526 return connections_connecting; |
8c237274189f
[gaim-migrate @ 6213]
Christian Hammond <chipx86@chipx86.com>
parents:
5784
diff
changeset
|
527 } |
8c237274189f
[gaim-migrate @ 6213]
Christian Hammond <chipx86@chipx86.com>
parents:
5784
diff
changeset
|
528 |
5563 | 529 void |
7035
feb3d21a7794
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
530 gaim_connections_set_ui_ops(GaimConnectionUiOps *ops) |
feb3d21a7794
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
531 { |
feb3d21a7794
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
532 connection_ui_ops = ops; |
feb3d21a7794
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
533 } |
feb3d21a7794
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
534 |
feb3d21a7794
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
535 GaimConnectionUiOps * |
feb3d21a7794
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
536 gaim_connections_get_ui_ops(void) |
feb3d21a7794
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
537 { |
feb3d21a7794
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
538 return connection_ui_ops; |
feb3d21a7794
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
539 } |
feb3d21a7794
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
540 |
feb3d21a7794
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
541 void |
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
542 gaim_connections_init(void) |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
543 { |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
544 void *handle = gaim_connections_get_handle(); |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
545 |
6564
800ef4a51096
[gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents:
6533
diff
changeset
|
546 gaim_signal_register(handle, "signing-on", |
800ef4a51096
[gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents:
6533
diff
changeset
|
547 gaim_marshal_VOID__POINTER, NULL, 1, |
800ef4a51096
[gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents:
6533
diff
changeset
|
548 gaim_value_new(GAIM_TYPE_SUBTYPE, |
6597
fe569b675cd2
[gaim-migrate @ 7121]
Christian Hammond <chipx86@chipx86.com>
parents:
6581
diff
changeset
|
549 GAIM_SUBTYPE_CONNECTION)); |
6564
800ef4a51096
[gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents:
6533
diff
changeset
|
550 |
800ef4a51096
[gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents:
6533
diff
changeset
|
551 gaim_signal_register(handle, "signed-on", |
800ef4a51096
[gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents:
6533
diff
changeset
|
552 gaim_marshal_VOID__POINTER, NULL, 1, |
800ef4a51096
[gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents:
6533
diff
changeset
|
553 gaim_value_new(GAIM_TYPE_SUBTYPE, |
6597
fe569b675cd2
[gaim-migrate @ 7121]
Christian Hammond <chipx86@chipx86.com>
parents:
6581
diff
changeset
|
554 GAIM_SUBTYPE_CONNECTION)); |
6564
800ef4a51096
[gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents:
6533
diff
changeset
|
555 |
800ef4a51096
[gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents:
6533
diff
changeset
|
556 gaim_signal_register(handle, "signing-off", |
800ef4a51096
[gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents:
6533
diff
changeset
|
557 gaim_marshal_VOID__POINTER, NULL, 1, |
800ef4a51096
[gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents:
6533
diff
changeset
|
558 gaim_value_new(GAIM_TYPE_SUBTYPE, |
6597
fe569b675cd2
[gaim-migrate @ 7121]
Christian Hammond <chipx86@chipx86.com>
parents:
6581
diff
changeset
|
559 GAIM_SUBTYPE_CONNECTION)); |
6564
800ef4a51096
[gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents:
6533
diff
changeset
|
560 |
800ef4a51096
[gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents:
6533
diff
changeset
|
561 gaim_signal_register(handle, "signed-off", |
800ef4a51096
[gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents:
6533
diff
changeset
|
562 gaim_marshal_VOID__POINTER, NULL, 1, |
800ef4a51096
[gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents:
6533
diff
changeset
|
563 gaim_value_new(GAIM_TYPE_SUBTYPE, |
6597
fe569b675cd2
[gaim-migrate @ 7121]
Christian Hammond <chipx86@chipx86.com>
parents:
6581
diff
changeset
|
564 GAIM_SUBTYPE_CONNECTION)); |
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
565 } |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
566 |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
567 void |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
568 gaim_connections_uninit(void) |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
569 { |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
570 gaim_signals_unregister_by_instance(gaim_connections_get_handle()); |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
571 } |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
572 |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
573 void * |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
574 gaim_connections_get_handle(void) |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
575 { |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
576 return &connections_handle; |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
577 } |