Mercurial > pidgin.yaz
annotate src/connection.c @ 8975:574393ccd705
[gaim-migrate @ 9749]
"
Cleans up some formatting oddnes in gtkblist.c, and somewhat standardizes
the way the dialogs are specified as to their being type hint DIALOG
windows. This still could use some more cleaning up, but that'd ideally
involve moving the Join a Chat, Add Buddy, and Add Chat dialogs to the
request api and that's more work then I cared to do right now." --deryni
committer: Tailor Script <tailor@pidgin.im>
author | Luke Schierer <lschiere@pidgin.im> |
---|---|
date | Wed, 19 May 2004 03:54:49 +0000 |
parents | 725413cc9fb9 |
children | db1dc2d02020 |
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" |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5859
diff
changeset
|
35 #include "sound.h" |
6106 | 36 #include "util.h" |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5859
diff
changeset
|
37 |
5563 | 38 static GList *connections = NULL; |
5564
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
39 static GList *connections_connecting = NULL; |
5563 | 40 static GaimConnectionUiOps *connection_ui_ops = NULL; |
41 | |
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
42 static int connections_handle; |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5859
diff
changeset
|
43 |
5563 | 44 GaimConnection * |
45 gaim_connection_new(GaimAccount *account) | |
46 { | |
47 GaimConnection *gc; | |
48 | |
49 g_return_val_if_fail(account != NULL, NULL); | |
50 | |
51 gc = g_new0(GaimConnection, 1); | |
52 | |
7956 | 53 gc->prpl = gaim_find_prpl(gaim_account_get_protocol_id(account)); |
5563 | 54 |
55 gaim_connection_set_account(gc, account); | |
56 gaim_account_set_connection(account, gc); | |
57 | |
58 return gc; | |
59 } | |
60 | |
61 void | |
62 gaim_connection_destroy(GaimConnection *gc) | |
63 { | |
5741
1b5e6e6e80e9
[gaim-migrate @ 6165]
Christian Hammond <chipx86@chipx86.com>
parents:
5740
diff
changeset
|
64 GaimAccount *account; |
1b5e6e6e80e9
[gaim-migrate @ 6165]
Christian Hammond <chipx86@chipx86.com>
parents:
5740
diff
changeset
|
65 |
5563 | 66 g_return_if_fail(gc != NULL); |
67 | |
68 if (gaim_connection_get_state(gc) != GAIM_DISCONNECTED) { | |
69 gaim_connection_disconnect(gc); | |
70 | |
71 return; | |
72 } | |
73 | |
5930
03f1d6cd784c
[gaim-migrate @ 6370]
Christian Hammond <chipx86@chipx86.com>
parents:
5926
diff
changeset
|
74 gaim_debug(GAIM_DEBUG_INFO, "connection", |
03f1d6cd784c
[gaim-migrate @ 6370]
Christian Hammond <chipx86@chipx86.com>
parents:
5926
diff
changeset
|
75 "Destroying connection %p\n", gc); |
03f1d6cd784c
[gaim-migrate @ 6370]
Christian Hammond <chipx86@chipx86.com>
parents:
5926
diff
changeset
|
76 |
5741
1b5e6e6e80e9
[gaim-migrate @ 6165]
Christian Hammond <chipx86@chipx86.com>
parents:
5740
diff
changeset
|
77 account = gaim_connection_get_account(gc); |
1b5e6e6e80e9
[gaim-migrate @ 6165]
Christian Hammond <chipx86@chipx86.com>
parents:
5740
diff
changeset
|
78 gaim_account_set_connection(account, NULL); |
1b5e6e6e80e9
[gaim-migrate @ 6165]
Christian Hammond <chipx86@chipx86.com>
parents:
5740
diff
changeset
|
79 |
5563 | 80 if (gc->display_name != NULL) |
81 g_free(gc->display_name); | |
82 | |
83 if (gc->away != NULL) | |
84 g_free(gc->away); | |
85 | |
86 if (gc->away_state != NULL) | |
87 g_free(gc->away_state); | |
88 | |
6393 | 89 if (gc->disconnect_timeout) |
8287
ef881489396e
[gaim-migrate @ 9011]
Christian Hammond <chipx86@chipx86.com>
parents:
8273
diff
changeset
|
90 gaim_timeout_remove(gc->disconnect_timeout); |
6393 | 91 |
5563 | 92 g_free(gc); |
93 } | |
94 | |
6110 | 95 static void request_pass_ok_cb(GaimAccount *account, const char *entry) |
6109 | 96 { |
97 gaim_account_set_password(account, (*entry != '\0') ? entry : NULL); | |
98 | |
6110 | 99 gaim_account_connect(account); |
6109 | 100 } |
101 | |
6581 | 102 void |
103 gaim_connection_register(GaimConnection *gc) | |
104 { | |
105 GaimAccount *account; | |
106 GaimConnectionUiOps *ops; | |
107 GaimPluginProtocolInfo *prpl_info = NULL; | |
108 | |
109 g_return_if_fail(gc != NULL); | |
110 | |
8130
ff88d4cbf4db
[gaim-migrate @ 8835]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
111 gaim_debug(GAIM_DEBUG_INFO, "connection", "Registering. gc = %p\n", gc); |
6581 | 112 |
7035
feb3d21a7794
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
113 ops = gaim_connections_get_ui_ops(); |
6581 | 114 |
115 if (gc->prpl != NULL) | |
8130
ff88d4cbf4db
[gaim-migrate @ 8835]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
116 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl); |
ff88d4cbf4db
[gaim-migrate @ 8835]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
117 else |
ff88d4cbf4db
[gaim-migrate @ 8835]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
118 { |
ff88d4cbf4db
[gaim-migrate @ 8835]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
119 gchar *message = g_strdup_printf(_("Missing protocol plugin for %s"), |
ff88d4cbf4db
[gaim-migrate @ 8835]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
120 gaim_account_get_username(gaim_connection_get_account(gc))); |
6581 | 121 |
122 gaim_debug(GAIM_DEBUG_ERROR, "connection", | |
123 "Could not get prpl info for %p\n", gc); | |
124 gaim_notify_error(NULL, _("Registration Error"), | |
125 message, NULL); | |
126 g_free(message); | |
127 return; | |
128 } | |
129 | |
8130
ff88d4cbf4db
[gaim-migrate @ 8835]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
130 if (prpl_info->register_user == NULL) |
ff88d4cbf4db
[gaim-migrate @ 8835]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
131 return; |
ff88d4cbf4db
[gaim-migrate @ 8835]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
132 |
6581 | 133 account = gaim_connection_get_account(gc); |
134 | |
135 if (gaim_connection_get_state(gc) != GAIM_DISCONNECTED) | |
136 return; | |
137 | |
138 gaim_connection_set_state(gc, GAIM_CONNECTING); | |
139 | |
140 connections = g_list_append(connections, gc); | |
141 | |
142 gaim_signal_emit(gaim_connections_get_handle(), "signing-on", gc); | |
143 | |
144 /* set this so we don't auto-reconnect after registering */ | |
145 gc->wants_to_die = TRUE; | |
146 | |
147 gaim_debug(GAIM_DEBUG_INFO, "connection", "Calling register_user\n"); | |
148 | |
149 prpl_info->register_user(account); | |
150 } | |
151 | |
6109 | 152 |
5563 | 153 void |
154 gaim_connection_connect(GaimConnection *gc) | |
155 { | |
156 GaimAccount *account; | |
157 GaimConnectionUiOps *ops; | |
158 GaimPluginProtocolInfo *prpl_info = NULL; | |
159 | |
160 g_return_if_fail(gc != NULL); | |
161 | |
5930
03f1d6cd784c
[gaim-migrate @ 6370]
Christian Hammond <chipx86@chipx86.com>
parents:
5926
diff
changeset
|
162 gaim_debug(GAIM_DEBUG_INFO, "connection", |
03f1d6cd784c
[gaim-migrate @ 6370]
Christian Hammond <chipx86@chipx86.com>
parents:
5926
diff
changeset
|
163 "Connecting. gc = %p\n", gc); |
03f1d6cd784c
[gaim-migrate @ 6370]
Christian Hammond <chipx86@chipx86.com>
parents:
5926
diff
changeset
|
164 |
7035
feb3d21a7794
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
165 ops = gaim_connections_get_ui_ops(); |
5563 | 166 |
6136
e391813214a6
[gaim-migrate @ 6610]
Christian Hammond <chipx86@chipx86.com>
parents:
6113
diff
changeset
|
167 if (gc->prpl != NULL) |
8131
968425e5da2f
[gaim-migrate @ 8836]
Christian Hammond <chipx86@chipx86.com>
parents:
8130
diff
changeset
|
168 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl); |
6136
e391813214a6
[gaim-migrate @ 6610]
Christian Hammond <chipx86@chipx86.com>
parents:
6113
diff
changeset
|
169 else { |
8130
ff88d4cbf4db
[gaim-migrate @ 8835]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
170 gchar *message = g_strdup_printf(_("Missing protocol plugin for %s"), |
ff88d4cbf4db
[gaim-migrate @ 8835]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
171 gaim_account_get_username(gaim_connection_get_account(gc))); |
6136
e391813214a6
[gaim-migrate @ 6610]
Christian Hammond <chipx86@chipx86.com>
parents:
6113
diff
changeset
|
172 |
e391813214a6
[gaim-migrate @ 6610]
Christian Hammond <chipx86@chipx86.com>
parents:
6113
diff
changeset
|
173 gaim_debug(GAIM_DEBUG_ERROR, "connection", |
e391813214a6
[gaim-migrate @ 6610]
Christian Hammond <chipx86@chipx86.com>
parents:
6113
diff
changeset
|
174 "Could not get prpl info for %p\n", gc); |
e391813214a6
[gaim-migrate @ 6610]
Christian Hammond <chipx86@chipx86.com>
parents:
6113
diff
changeset
|
175 gaim_notify_error(NULL, _("Connection Error"), |
e391813214a6
[gaim-migrate @ 6610]
Christian Hammond <chipx86@chipx86.com>
parents:
6113
diff
changeset
|
176 message, NULL); |
e391813214a6
[gaim-migrate @ 6610]
Christian Hammond <chipx86@chipx86.com>
parents:
6113
diff
changeset
|
177 g_free(message); |
e391813214a6
[gaim-migrate @ 6610]
Christian Hammond <chipx86@chipx86.com>
parents:
6113
diff
changeset
|
178 return; |
e391813214a6
[gaim-migrate @ 6610]
Christian Hammond <chipx86@chipx86.com>
parents:
6113
diff
changeset
|
179 } |
5563 | 180 |
181 account = gaim_connection_get_account(gc); | |
182 | |
6109 | 183 if (gaim_connection_get_state(gc) != GAIM_DISCONNECTED) |
184 return; | |
185 | |
6036 | 186 if (!(prpl_info->options & OPT_PROTO_NO_PASSWORD) && |
6231 | 187 !(prpl_info->options & OPT_PROTO_PASSWORD_OPTIONAL) && |
188 gaim_account_get_password(account) == NULL) { | |
6111 | 189 gchar *primary; |
6231 | 190 gchar *escaped; |
191 const gchar *username = gaim_account_get_username(account); | |
192 | |
5930
03f1d6cd784c
[gaim-migrate @ 6370]
Christian Hammond <chipx86@chipx86.com>
parents:
5926
diff
changeset
|
193 gaim_debug(GAIM_DEBUG_INFO, "connection", "Requesting password\n"); |
6468
4aa3b1cec52b
[gaim-migrate @ 6977]
Christian Hammond <chipx86@chipx86.com>
parents:
6460
diff
changeset
|
194 gaim_connection_destroy(gc); |
6231 | 195 escaped = g_markup_escape_text(username, strlen(username)); |
196 primary = g_strdup_printf(_("Enter password for %s"), escaped); | |
8697 | 197 gaim_request_input(gc, NULL, primary, NULL, NULL, FALSE, TRUE, NULL, |
6109 | 198 _("OK"), G_CALLBACK(request_pass_ok_cb), |
6110 | 199 _("Cancel"), NULL, account); |
6111 | 200 g_free(primary); |
6231 | 201 g_free(escaped); |
5563 | 202 |
203 return; | |
204 } | |
205 | |
206 gaim_connection_set_state(gc, GAIM_CONNECTING); | |
207 | |
6507 | 208 connections = g_list_append(connections, gc); |
209 | |
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
210 gaim_signal_emit(gaim_connections_get_handle(), "signing-on", gc); |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
211 |
5581
3a9b54f260e3
[gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents:
5571
diff
changeset
|
212 gaim_debug(GAIM_DEBUG_INFO, "connection", "Calling serv_login\n"); |
3a9b54f260e3
[gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents:
5571
diff
changeset
|
213 |
5563 | 214 serv_login(account); |
215 } | |
216 | |
217 void | |
218 gaim_connection_disconnect(GaimConnection *gc) | |
219 { | |
5926
6c22d37c6a3c
[gaim-migrate @ 6366]
Christian Hammond <chipx86@chipx86.com>
parents:
5905
diff
changeset
|
220 GaimAccount *account; |
5563 | 221 GList *wins; |
222 | |
223 g_return_if_fail(gc != NULL); | |
224 | |
5926
6c22d37c6a3c
[gaim-migrate @ 6366]
Christian Hammond <chipx86@chipx86.com>
parents:
5905
diff
changeset
|
225 account = gaim_connection_get_account(gc); |
6c22d37c6a3c
[gaim-migrate @ 6366]
Christian Hammond <chipx86@chipx86.com>
parents:
5905
diff
changeset
|
226 |
6c22d37c6a3c
[gaim-migrate @ 6366]
Christian Hammond <chipx86@chipx86.com>
parents:
5905
diff
changeset
|
227 if (gaim_account_get_connection(account) != NULL) { |
6c22d37c6a3c
[gaim-migrate @ 6366]
Christian Hammond <chipx86@chipx86.com>
parents:
5905
diff
changeset
|
228 gaim_account_disconnect(account); |
6c22d37c6a3c
[gaim-migrate @ 6366]
Christian Hammond <chipx86@chipx86.com>
parents:
5905
diff
changeset
|
229 return; |
6c22d37c6a3c
[gaim-migrate @ 6366]
Christian Hammond <chipx86@chipx86.com>
parents:
5905
diff
changeset
|
230 } |
6c22d37c6a3c
[gaim-migrate @ 6366]
Christian Hammond <chipx86@chipx86.com>
parents:
5905
diff
changeset
|
231 |
5930
03f1d6cd784c
[gaim-migrate @ 6370]
Christian Hammond <chipx86@chipx86.com>
parents:
5926
diff
changeset
|
232 gaim_debug(GAIM_DEBUG_INFO, "connection", |
03f1d6cd784c
[gaim-migrate @ 6370]
Christian Hammond <chipx86@chipx86.com>
parents:
5926
diff
changeset
|
233 "Disconnecting connection %p\n", gc); |
03f1d6cd784c
[gaim-migrate @ 6370]
Christian Hammond <chipx86@chipx86.com>
parents:
5926
diff
changeset
|
234 |
5740
6ec7b32ab1df
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
235 if (gaim_connection_get_state(gc) != GAIM_DISCONNECTED) { |
6ec7b32ab1df
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
236 if (gaim_connection_get_state(gc) != GAIM_CONNECTING) |
6ec7b32ab1df
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
237 gaim_blist_remove_account(gaim_connection_get_account(gc)); |
5563 | 238 |
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
239 gaim_signal_emit(gaim_connections_get_handle(), "signing-off", gc); |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
240 |
5740
6ec7b32ab1df
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
241 serv_close(gc); |
5563 | 242 |
6533 | 243 connections = g_list_remove(connections, gc); |
244 | |
5859
022786c7ab53
[gaim-migrate @ 6290]
Christian Hammond <chipx86@chipx86.com>
parents:
5788
diff
changeset
|
245 gaim_connection_set_state(gc, GAIM_DISCONNECTED); |
5563 | 246 |
7431 | 247 /* LOG system_log(log_signoff, gc, NULL, |
248 OPT_LOG_BUDDY_SIGNON | OPT_LOG_MY_SIGNON); */ | |
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
249 gaim_signal_emit(gaim_connections_get_handle(), "signed-off", gc); |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
250 |
5615
6500a6c8d679
[gaim-migrate @ 6022]
Christian Hammond <chipx86@chipx86.com>
parents:
5581
diff
changeset
|
251 |
5740
6ec7b32ab1df
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
252 /* |
6ec7b32ab1df
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
253 * 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
|
254 * notification system. |
6ec7b32ab1df
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
255 */ |
6ec7b32ab1df
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
256 for (wins = gaim_get_windows(); wins != NULL; wins = wins->next) { |
7118
bf630f7dfdcd
[gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents:
7035
diff
changeset
|
257 GaimConvWindow *win = (GaimConvWindow *)wins->data; |
bf630f7dfdcd
[gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents:
7035
diff
changeset
|
258 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
|
259 GAIM_CONV_ACCOUNT_OFFLINE); |
6ec7b32ab1df
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
260 } |
6ec7b32ab1df
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
261 |
6ec7b32ab1df
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
262 gaim_request_close_with_handle(gc); |
6ec7b32ab1df
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
263 gaim_notify_close_with_handle(gc); |
5563 | 264 } |
265 | |
5622
70ae81fc802f
[gaim-migrate @ 6029]
Christian Hammond <chipx86@chipx86.com>
parents:
5615
diff
changeset
|
266 gaim_connection_destroy(gc); |
5563 | 267 } |
268 | |
6029 | 269 gboolean |
270 gaim_connection_disconnect_cb(gpointer data) | |
271 { | |
6076 | 272 GaimAccount *account = data; |
273 GaimConnection *gc = gaim_account_get_connection(account); | |
6029 | 274 |
6076 | 275 if(gc) |
276 gaim_connection_disconnect(gc); | |
6029 | 277 |
278 return FALSE; | |
279 } | |
280 | |
5563 | 281 /* |
8130
ff88d4cbf4db
[gaim-migrate @ 8835]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
282 * d:)->-< |
5563 | 283 * |
284 * d:O-\-< | |
8130
ff88d4cbf4db
[gaim-migrate @ 8835]
Christian Hammond <chipx86@chipx86.com>
parents:
8046
diff
changeset
|
285 * |
5563 | 286 * d:D-/-< |
287 * | |
288 * d8D->-< DANCE! | |
289 */ | |
290 | |
291 void | |
292 gaim_connection_set_state(GaimConnection *gc, GaimConnectionState state) | |
293 { | |
5885
02569519d0cc
[gaim-migrate @ 6317]
Christian Hammond <chipx86@chipx86.com>
parents:
5883
diff
changeset
|
294 GaimConnectionUiOps *ops; |
02569519d0cc
[gaim-migrate @ 6317]
Christian Hammond <chipx86@chipx86.com>
parents:
5883
diff
changeset
|
295 |
5563 | 296 g_return_if_fail(gc != NULL); |
297 | |
5784
72fb22b9ac98
[gaim-migrate @ 6209]
Christian Hammond <chipx86@chipx86.com>
parents:
5741
diff
changeset
|
298 if (gc->state == state) |
72fb22b9ac98
[gaim-migrate @ 6209]
Christian Hammond <chipx86@chipx86.com>
parents:
5741
diff
changeset
|
299 return; |
72fb22b9ac98
[gaim-migrate @ 6209]
Christian Hammond <chipx86@chipx86.com>
parents:
5741
diff
changeset
|
300 |
5563 | 301 gc->state = state; |
302 | |
7035
feb3d21a7794
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
303 ops = gaim_connections_get_ui_ops(); |
5885
02569519d0cc
[gaim-migrate @ 6317]
Christian Hammond <chipx86@chipx86.com>
parents:
5883
diff
changeset
|
304 |
5905
dbe2a2174be9
[gaim-migrate @ 6337]
Christian Hammond <chipx86@chipx86.com>
parents:
5885
diff
changeset
|
305 if (gc->state == GAIM_CONNECTING) { |
dbe2a2174be9
[gaim-migrate @ 6337]
Christian Hammond <chipx86@chipx86.com>
parents:
5885
diff
changeset
|
306 connections_connecting = g_list_append(connections_connecting, gc); |
dbe2a2174be9
[gaim-migrate @ 6337]
Christian Hammond <chipx86@chipx86.com>
parents:
5885
diff
changeset
|
307 } |
dbe2a2174be9
[gaim-migrate @ 6337]
Christian Hammond <chipx86@chipx86.com>
parents:
5885
diff
changeset
|
308 else { |
5885
02569519d0cc
[gaim-migrate @ 6317]
Christian Hammond <chipx86@chipx86.com>
parents:
5883
diff
changeset
|
309 connections_connecting = g_list_remove(connections_connecting, gc); |
5905
dbe2a2174be9
[gaim-migrate @ 6337]
Christian Hammond <chipx86@chipx86.com>
parents:
5885
diff
changeset
|
310 } |
5885
02569519d0cc
[gaim-migrate @ 6317]
Christian Hammond <chipx86@chipx86.com>
parents:
5883
diff
changeset
|
311 |
5563 | 312 if (gc->state == GAIM_CONNECTED) { |
6695 | 313 GaimBlistNode *gnode,*cnode,*bnode; |
5563 | 314 GList *wins; |
315 GList *add_buds=NULL; | |
8573 | 316 GaimAccount *account = gaim_connection_get_account(gc); |
5563 | 317 |
318 /* Set the time the account came online */ | |
319 time(&gc->login_time); | |
320 | |
321 if (ops != NULL && ops->connected != NULL) | |
322 ops->connected(gc); | |
323 | |
324 gaim_blist_show(); | |
8573 | 325 gaim_blist_add_account(account); |
5563 | 326 |
327 /* | |
328 * XXX This is a hack! Remove this and replace it with a better event | |
329 * notification system. | |
330 */ | |
331 for (wins = gaim_get_windows(); wins != NULL; wins = wins->next) { | |
7118
bf630f7dfdcd
[gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents:
7035
diff
changeset
|
332 GaimConvWindow *win = (GaimConvWindow *)wins->data; |
bf630f7dfdcd
[gaim-migrate @ 7685]
Christian Hammond <chipx86@chipx86.com>
parents:
7035
diff
changeset
|
333 gaim_conversation_update(gaim_conv_window_get_conversation_at(win, 0), |
5563 | 334 GAIM_CONV_ACCOUNT_ONLINE); |
335 } | |
336 | |
7431 | 337 /* LOG system_log(log_signon, gc, NULL, |
338 OPT_LOG_BUDDY_SIGNON | OPT_LOG_MY_SIGNON); */ | |
8573 | 339 if(gaim_prefs_get_bool("/core/logging/log_system") && |
340 gaim_prefs_get_bool("/core/logging/log_own_states")){ | |
341 GaimLog *log = gaim_account_get_log(account); | |
342 char *msg = g_strdup_printf("+++ %s signed on", | |
343 gaim_account_get_username(account)); | |
344 gaim_log_write(log, GAIM_MESSAGE_SYSTEM, | |
345 gaim_account_get_username(account), gc->login_time, | |
346 msg); | |
347 g_free(msg); | |
348 } | |
349 | |
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
350 gaim_signal_emit(gaim_connections_get_handle(), "signed-on", gc); |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
351 |
5563 | 352 #if 0 |
353 /* away option given? */ | |
354 if (opt_away) { | |
355 away_on_login(opt_away_arg); | |
356 /* don't do it again */ | |
357 opt_away = 0; | |
358 } else if (awaymessage) { | |
359 serv_set_away(gc, GAIM_AWAY_CUSTOM, awaymessage->message); | |
360 } | |
361 if (opt_away_arg != NULL) { | |
362 g_free(opt_away_arg); | |
363 opt_away_arg = NULL; | |
364 } | |
365 #endif | |
366 | |
367 /* let the prpl know what buddies we pulled out of the local list */ | |
368 for (gnode = gaim_get_blist()->root; gnode; gnode = gnode->next) { | |
369 if(!GAIM_BLIST_NODE_IS_GROUP(gnode)) | |
370 continue; | |
6695 | 371 for(cnode = gnode->child; cnode; cnode = cnode->next) { |
372 if(!GAIM_BLIST_NODE_IS_CONTACT(cnode)) | |
373 continue; | |
374 for(bnode = cnode->child; bnode; bnode = bnode->next) { | |
375 GaimBuddy *b; | |
376 if(!GAIM_BLIST_NODE_IS_BUDDY(bnode)) | |
377 continue; | |
378 | |
379 b = (GaimBuddy *)bnode; | |
5563 | 380 if(b->account == gc->account) { |
381 add_buds = g_list_append(add_buds, b->name); | |
382 } | |
383 } | |
384 } | |
385 } | |
386 | |
387 if(add_buds) { | |
388 serv_add_buddies(gc, add_buds); | |
389 g_list_free(add_buds); | |
390 } | |
391 | |
392 serv_set_permit_deny(gc); | |
393 } | |
5885
02569519d0cc
[gaim-migrate @ 6317]
Christian Hammond <chipx86@chipx86.com>
parents:
5883
diff
changeset
|
394 else if (gc->state == GAIM_DISCONNECTED) { |
8573 | 395 GaimAccount *account = gaim_connection_get_account(gc); |
396 | |
397 if(gaim_prefs_get_bool("/core/logging/log_system") && | |
398 gaim_prefs_get_bool("/core/logging/log_own_states")){ | |
399 GaimLog *log = gaim_account_get_log(account); | |
400 char *msg = g_strdup_printf("+++ %s signed off", | |
401 gaim_account_get_username(account)); | |
402 gaim_log_write(log, GAIM_MESSAGE_SYSTEM, | |
403 gaim_account_get_username(account), time(NULL), | |
404 msg); | |
405 g_free(msg); | |
406 } | |
407 | |
408 gaim_account_destroy_log(account); | |
409 | |
5885
02569519d0cc
[gaim-migrate @ 6317]
Christian Hammond <chipx86@chipx86.com>
parents:
5883
diff
changeset
|
410 if (ops != NULL && ops->disconnected != NULL) |
8573 | 411 ops->disconnected(gc); |
5564
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
412 } |
5563 | 413 } |
414 | |
415 void | |
416 gaim_connection_set_account(GaimConnection *gc, GaimAccount *account) | |
417 { | |
418 g_return_if_fail(gc != NULL); | |
419 g_return_if_fail(account != NULL); | |
420 | |
421 gc->account = account; | |
422 } | |
423 | |
424 void | |
425 gaim_connection_set_display_name(GaimConnection *gc, const char *name) | |
426 { | |
427 g_return_if_fail(gc != NULL); | |
428 | |
429 if (gc->display_name != NULL) | |
430 g_free(gc->display_name); | |
431 | |
432 gc->display_name = (name == NULL ? NULL : g_strdup(name)); | |
433 } | |
434 | |
435 GaimConnectionState | |
436 gaim_connection_get_state(const GaimConnection *gc) | |
437 { | |
438 g_return_val_if_fail(gc != NULL, GAIM_DISCONNECTED); | |
439 | |
440 return gc->state; | |
441 } | |
442 | |
443 GaimAccount * | |
444 gaim_connection_get_account(const GaimConnection *gc) | |
445 { | |
446 g_return_val_if_fail(gc != NULL, NULL); | |
447 | |
448 return gc->account; | |
449 } | |
450 | |
451 const char * | |
452 gaim_connection_get_display_name(const GaimConnection *gc) | |
453 { | |
454 g_return_val_if_fail(gc != NULL, NULL); | |
455 | |
456 return gc->display_name; | |
457 } | |
458 | |
459 void | |
460 gaim_connection_update_progress(GaimConnection *gc, const char *text, | |
461 size_t step, size_t count) | |
462 { | |
463 GaimConnectionUiOps *ops; | |
464 | |
465 g_return_if_fail(gc != NULL); | |
466 g_return_if_fail(text != NULL); | |
467 g_return_if_fail(step < count); | |
468 g_return_if_fail(count > 1); | |
469 | |
7035
feb3d21a7794
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
470 ops = gaim_connections_get_ui_ops(); |
5563 | 471 |
472 if (ops != NULL && ops->connect_progress != NULL) | |
473 ops->connect_progress(gc, text, step, count); | |
474 } | |
475 | |
476 void | |
5571
113090160626
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
477 gaim_connection_notice(GaimConnection *gc, const char *text) |
113090160626
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
478 { |
113090160626
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
479 GaimConnectionUiOps *ops; |
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 g_return_if_fail(gc != NULL); |
113090160626
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
482 g_return_if_fail(text != NULL); |
113090160626
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
483 |
7035
feb3d21a7794
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
484 ops = gaim_connections_get_ui_ops(); |
5571
113090160626
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
485 |
113090160626
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
486 if (ops != NULL && ops->notice != NULL) |
113090160626
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
487 ops->notice(gc, text); |
113090160626
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
488 } |
113090160626
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
489 |
113090160626
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
490 void |
5564
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
491 gaim_connection_error(GaimConnection *gc, const char *text) |
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
492 { |
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
493 GaimConnectionUiOps *ops; |
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
494 |
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
495 g_return_if_fail(gc != NULL); |
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
496 g_return_if_fail(text != NULL); |
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
497 |
6393 | 498 /* 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
|
499 if (gc->disconnect_timeout) |
6393 | 500 return; |
501 | |
7035
feb3d21a7794
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
502 ops = gaim_connections_get_ui_ops(); |
5564
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
503 |
6460
ff4551719cc7
[gaim-migrate @ 6969]
Christian Hammond <chipx86@chipx86.com>
parents:
6393
diff
changeset
|
504 if (ops != NULL) { |
ff4551719cc7
[gaim-migrate @ 6969]
Christian Hammond <chipx86@chipx86.com>
parents:
6393
diff
changeset
|
505 if (ops->report_disconnect != NULL) |
ff4551719cc7
[gaim-migrate @ 6969]
Christian Hammond <chipx86@chipx86.com>
parents:
6393
diff
changeset
|
506 ops->report_disconnect(gc, text); |
ff4551719cc7
[gaim-migrate @ 6969]
Christian Hammond <chipx86@chipx86.com>
parents:
6393
diff
changeset
|
507 |
ff4551719cc7
[gaim-migrate @ 6969]
Christian Hammond <chipx86@chipx86.com>
parents:
6393
diff
changeset
|
508 if (ops->disconnected != NULL) |
ff4551719cc7
[gaim-migrate @ 6969]
Christian Hammond <chipx86@chipx86.com>
parents:
6393
diff
changeset
|
509 ops->disconnected(gc); |
ff4551719cc7
[gaim-migrate @ 6969]
Christian Hammond <chipx86@chipx86.com>
parents:
6393
diff
changeset
|
510 } |
5727 | 511 |
8273
f24172f53650
[gaim-migrate @ 8997]
Christian Hammond <chipx86@chipx86.com>
parents:
8131
diff
changeset
|
512 gc->disconnect_timeout = gaim_timeout_add(0, gaim_connection_disconnect_cb, |
6076 | 513 gaim_connection_get_account(gc)); |
5564
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
514 } |
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
515 |
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
516 void |
5563 | 517 gaim_connections_disconnect_all(void) |
518 { | |
519 GList *l; | |
6113 | 520 GaimConnection *gc; |
5563 | 521 |
6113 | 522 while ((l = gaim_connections_get_all()) != NULL) { |
523 gc = l->data; | |
524 gc->wants_to_die = TRUE; | |
525 gaim_connection_destroy(gc); | |
526 } | |
5563 | 527 } |
528 | |
529 GList * | |
530 gaim_connections_get_all(void) | |
531 { | |
532 return connections; | |
533 } | |
534 | |
5788
8c237274189f
[gaim-migrate @ 6213]
Christian Hammond <chipx86@chipx86.com>
parents:
5784
diff
changeset
|
535 GList * |
8c237274189f
[gaim-migrate @ 6213]
Christian Hammond <chipx86@chipx86.com>
parents:
5784
diff
changeset
|
536 gaim_connections_get_connecting(void) |
8c237274189f
[gaim-migrate @ 6213]
Christian Hammond <chipx86@chipx86.com>
parents:
5784
diff
changeset
|
537 { |
8c237274189f
[gaim-migrate @ 6213]
Christian Hammond <chipx86@chipx86.com>
parents:
5784
diff
changeset
|
538 return connections_connecting; |
8c237274189f
[gaim-migrate @ 6213]
Christian Hammond <chipx86@chipx86.com>
parents:
5784
diff
changeset
|
539 } |
8c237274189f
[gaim-migrate @ 6213]
Christian Hammond <chipx86@chipx86.com>
parents:
5784
diff
changeset
|
540 |
5563 | 541 void |
7035
feb3d21a7794
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
542 gaim_connections_set_ui_ops(GaimConnectionUiOps *ops) |
feb3d21a7794
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
543 { |
feb3d21a7794
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
544 connection_ui_ops = ops; |
feb3d21a7794
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
545 } |
feb3d21a7794
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
546 |
feb3d21a7794
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
547 GaimConnectionUiOps * |
feb3d21a7794
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
548 gaim_connections_get_ui_ops(void) |
feb3d21a7794
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
549 { |
feb3d21a7794
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
550 return connection_ui_ops; |
feb3d21a7794
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
551 } |
feb3d21a7794
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
552 |
feb3d21a7794
[gaim-migrate @ 7598]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
553 void |
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
554 gaim_connections_init(void) |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
555 { |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
556 void *handle = gaim_connections_get_handle(); |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
557 |
6564
800ef4a51096
[gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents:
6533
diff
changeset
|
558 gaim_signal_register(handle, "signing-on", |
800ef4a51096
[gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents:
6533
diff
changeset
|
559 gaim_marshal_VOID__POINTER, NULL, 1, |
800ef4a51096
[gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents:
6533
diff
changeset
|
560 gaim_value_new(GAIM_TYPE_SUBTYPE, |
6597
fe569b675cd2
[gaim-migrate @ 7121]
Christian Hammond <chipx86@chipx86.com>
parents:
6581
diff
changeset
|
561 GAIM_SUBTYPE_CONNECTION)); |
6564
800ef4a51096
[gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents:
6533
diff
changeset
|
562 |
800ef4a51096
[gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents:
6533
diff
changeset
|
563 gaim_signal_register(handle, "signed-on", |
800ef4a51096
[gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents:
6533
diff
changeset
|
564 gaim_marshal_VOID__POINTER, NULL, 1, |
800ef4a51096
[gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents:
6533
diff
changeset
|
565 gaim_value_new(GAIM_TYPE_SUBTYPE, |
6597
fe569b675cd2
[gaim-migrate @ 7121]
Christian Hammond <chipx86@chipx86.com>
parents:
6581
diff
changeset
|
566 GAIM_SUBTYPE_CONNECTION)); |
6564
800ef4a51096
[gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents:
6533
diff
changeset
|
567 |
800ef4a51096
[gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents:
6533
diff
changeset
|
568 gaim_signal_register(handle, "signing-off", |
800ef4a51096
[gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents:
6533
diff
changeset
|
569 gaim_marshal_VOID__POINTER, NULL, 1, |
800ef4a51096
[gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents:
6533
diff
changeset
|
570 gaim_value_new(GAIM_TYPE_SUBTYPE, |
6597
fe569b675cd2
[gaim-migrate @ 7121]
Christian Hammond <chipx86@chipx86.com>
parents:
6581
diff
changeset
|
571 GAIM_SUBTYPE_CONNECTION)); |
6564
800ef4a51096
[gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents:
6533
diff
changeset
|
572 |
800ef4a51096
[gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents:
6533
diff
changeset
|
573 gaim_signal_register(handle, "signed-off", |
800ef4a51096
[gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents:
6533
diff
changeset
|
574 gaim_marshal_VOID__POINTER, NULL, 1, |
800ef4a51096
[gaim-migrate @ 7086]
Christian Hammond <chipx86@chipx86.com>
parents:
6533
diff
changeset
|
575 gaim_value_new(GAIM_TYPE_SUBTYPE, |
6597
fe569b675cd2
[gaim-migrate @ 7121]
Christian Hammond <chipx86@chipx86.com>
parents:
6581
diff
changeset
|
576 GAIM_SUBTYPE_CONNECTION)); |
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
577 } |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
578 |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
579 void |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
580 gaim_connections_uninit(void) |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
581 { |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
582 gaim_signals_unregister_by_instance(gaim_connections_get_handle()); |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
583 } |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
584 |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
585 void * |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
586 gaim_connections_get_handle(void) |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
587 { |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
588 return &connections_handle; |
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
589 } |