Mercurial > pidgin
annotate src/connection.c @ 5867:db4df0be06fd
[gaim-migrate @ 6298]
Added a little bit of code to prevent duplicate accounts, but it doesn't
fix the problem of importing all new accounts when are importing from the
old .gaimrc and also have an accounts.xml already established.
committer: Tailor Script <tailor@pidgin.im>
| author | Christian Hammond <chipx86@chipx86.com> |
|---|---|
| date | Sat, 14 Jun 2003 12:01:19 +0000 |
| parents | 022786c7ab53 |
| children | 059d95c67cda |
| rev | line source |
|---|---|
| 5563 | 1 /** |
| 2 * @file connection.c Connection API | |
| 3 * @ingroup core | |
| 4 * | |
| 5 * gaim | |
| 6 * | |
| 7 * Copyright (C) 2003 Christian Hammond <chipx86@gnupdate.org> | |
| 5631 | 8 * |
| 5563 | 9 * This program is free software; you can redistribute it and/or modify |
| 10 * it under the terms of the GNU General Public License as published by | |
| 11 * the Free Software Foundation; either version 2 of the License, or | |
| 12 * (at your option) any later version. | |
| 13 * | |
| 14 * This program is distributed in the hope that it will be useful, | |
| 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 17 * GNU General Public License for more details. | |
| 18 * | |
| 19 * You should have received a copy of the GNU General Public License | |
| 20 * along with this program; if not, write to the Free Software | |
| 21 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
| 22 */ | |
| 5717 | 23 |
| 5563 | 24 #include "connection.h" |
| 5717 | 25 #include "debug.h" |
| 26 #include "gaim.h" | |
| 5563 | 27 |
| 28 static GList *connections = NULL; | |
|
5564
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
29 static GList *connections_connecting = NULL; |
| 5563 | 30 static GaimConnectionUiOps *connection_ui_ops = NULL; |
| 31 | |
| 32 GaimConnection * | |
| 33 gaim_connection_new(GaimAccount *account) | |
| 34 { | |
| 35 GaimConnection *gc; | |
| 36 | |
| 37 g_return_val_if_fail(account != NULL, NULL); | |
| 38 | |
| 39 gc = g_new0(GaimConnection, 1); | |
| 40 | |
| 41 gc->prpl = gaim_find_prpl(gaim_account_get_protocol(account)); | |
| 42 | |
| 43 gaim_connection_set_account(gc, account); | |
| 44 gaim_account_set_connection(account, gc); | |
| 45 | |
| 46 return gc; | |
| 47 } | |
| 48 | |
| 49 void | |
| 50 gaim_connection_destroy(GaimConnection *gc) | |
| 51 { | |
|
5741
1b5e6e6e80e9
[gaim-migrate @ 6165]
Christian Hammond <chipx86@chipx86.com>
parents:
5740
diff
changeset
|
52 GaimAccount *account; |
|
1b5e6e6e80e9
[gaim-migrate @ 6165]
Christian Hammond <chipx86@chipx86.com>
parents:
5740
diff
changeset
|
53 |
| 5563 | 54 g_return_if_fail(gc != NULL); |
| 55 | |
| 56 if (gaim_connection_get_state(gc) != GAIM_DISCONNECTED) { | |
| 57 gaim_connection_disconnect(gc); | |
| 58 | |
| 59 return; | |
| 60 } | |
| 61 | |
|
5741
1b5e6e6e80e9
[gaim-migrate @ 6165]
Christian Hammond <chipx86@chipx86.com>
parents:
5740
diff
changeset
|
62 account = gaim_connection_get_account(gc); |
|
1b5e6e6e80e9
[gaim-migrate @ 6165]
Christian Hammond <chipx86@chipx86.com>
parents:
5740
diff
changeset
|
63 gaim_account_set_connection(account, NULL); |
|
1b5e6e6e80e9
[gaim-migrate @ 6165]
Christian Hammond <chipx86@chipx86.com>
parents:
5740
diff
changeset
|
64 |
| 5563 | 65 if (gc->display_name != NULL) |
| 66 g_free(gc->display_name); | |
| 67 | |
| 68 if (gc->away != NULL) | |
| 69 g_free(gc->away); | |
| 70 | |
| 71 if (gc->away_state != NULL) | |
| 72 g_free(gc->away_state); | |
| 73 | |
| 74 g_free(gc); | |
| 75 } | |
| 76 | |
| 77 void | |
| 78 gaim_connection_connect(GaimConnection *gc) | |
| 79 { | |
| 80 GaimAccount *account; | |
| 81 GaimConnectionUiOps *ops; | |
| 82 GaimPluginProtocolInfo *prpl_info = NULL; | |
| 83 | |
| 84 g_return_if_fail(gc != NULL); | |
| 85 | |
| 86 ops = gaim_get_connection_ui_ops(); | |
| 87 | |
| 88 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl); | |
| 89 | |
| 90 account = gaim_connection_get_account(gc); | |
| 91 | |
| 92 if ((prpl_info->options & OPT_PROTO_NO_PASSWORD) && | |
| 93 !(prpl_info->options & OPT_PROTO_PASSWORD_OPTIONAL) && | |
| 94 gaim_account_get_password(account) == NULL) { | |
| 95 | |
|
5581
3a9b54f260e3
[gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents:
5571
diff
changeset
|
96 gaim_debug(GAIM_DEBUG_INFO, "connection", "Requestin password\n"); |
|
3a9b54f260e3
[gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents:
5571
diff
changeset
|
97 |
| 5563 | 98 if (ops != NULL && ops->request_pass != NULL) |
| 99 ops->request_pass(gc); | |
| 100 | |
| 101 return; | |
| 102 } | |
| 103 | |
| 104 gaim_connection_set_state(gc, GAIM_CONNECTING); | |
| 105 | |
|
5581
3a9b54f260e3
[gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents:
5571
diff
changeset
|
106 gaim_debug(GAIM_DEBUG_INFO, "connection", "Calling serv_login\n"); |
|
3a9b54f260e3
[gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents:
5571
diff
changeset
|
107 |
|
5623
8c895d80159a
[gaim-migrate @ 6030]
Christian Hammond <chipx86@chipx86.com>
parents:
5622
diff
changeset
|
108 connections = g_list_append(connections, gc); |
|
8c895d80159a
[gaim-migrate @ 6030]
Christian Hammond <chipx86@chipx86.com>
parents:
5622
diff
changeset
|
109 |
| 5563 | 110 serv_login(account); |
| 111 } | |
| 112 | |
| 113 void | |
| 114 gaim_connection_disconnect(GaimConnection *gc) | |
| 115 { | |
| 116 GList *wins; | |
| 117 | |
| 118 g_return_if_fail(gc != NULL); | |
| 119 | |
|
5740
6ec7b32ab1df
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
120 if (gaim_connection_get_state(gc) != GAIM_DISCONNECTED) { |
|
6ec7b32ab1df
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
121 if (gaim_connection_get_state(gc) != GAIM_CONNECTING) |
|
6ec7b32ab1df
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
122 gaim_blist_remove_account(gaim_connection_get_account(gc)); |
| 5563 | 123 |
|
5740
6ec7b32ab1df
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
124 serv_close(gc); |
| 5563 | 125 |
|
5859
022786c7ab53
[gaim-migrate @ 6290]
Christian Hammond <chipx86@chipx86.com>
parents:
5788
diff
changeset
|
126 connections = g_list_remove(connections, gc); |
|
5740
6ec7b32ab1df
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
127 |
|
5859
022786c7ab53
[gaim-migrate @ 6290]
Christian Hammond <chipx86@chipx86.com>
parents:
5788
diff
changeset
|
128 gaim_connection_set_state(gc, GAIM_DISCONNECTED); |
| 5563 | 129 |
|
5740
6ec7b32ab1df
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
130 gaim_event_broadcast(event_signoff, gc); |
|
6ec7b32ab1df
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
131 system_log(log_signoff, gc, NULL, |
|
6ec7b32ab1df
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
132 OPT_LOG_BUDDY_SIGNON | OPT_LOG_MY_SIGNON); |
|
5615
6500a6c8d679
[gaim-migrate @ 6022]
Christian Hammond <chipx86@chipx86.com>
parents:
5581
diff
changeset
|
133 |
|
5740
6ec7b32ab1df
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
134 /* |
|
6ec7b32ab1df
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
135 * 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
|
136 * notification system. |
|
6ec7b32ab1df
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
137 */ |
|
6ec7b32ab1df
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
138 for (wins = gaim_get_windows(); wins != NULL; wins = wins->next) { |
|
6ec7b32ab1df
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
139 GaimWindow *win = (GaimWindow *)wins->data; |
|
6ec7b32ab1df
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
140 gaim_conversation_update(gaim_window_get_conversation_at(win, 0), |
|
6ec7b32ab1df
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
141 GAIM_CONV_ACCOUNT_OFFLINE); |
|
6ec7b32ab1df
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
142 } |
|
6ec7b32ab1df
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
143 |
|
6ec7b32ab1df
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
144 gaim_request_close_with_handle(gc); |
|
6ec7b32ab1df
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
145 gaim_notify_close_with_handle(gc); |
|
6ec7b32ab1df
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
146 |
|
6ec7b32ab1df
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
147 update_privacy_connections(); |
| 5563 | 148 } |
| 149 | |
|
5622
70ae81fc802f
[gaim-migrate @ 6029]
Christian Hammond <chipx86@chipx86.com>
parents:
5615
diff
changeset
|
150 gaim_connection_destroy(gc); |
|
70ae81fc802f
[gaim-migrate @ 6029]
Christian Hammond <chipx86@chipx86.com>
parents:
5615
diff
changeset
|
151 |
| 5563 | 152 /* XXX More UI stuff! */ |
| 153 if (connections != NULL) | |
| 154 return; | |
| 155 | |
| 156 destroy_all_dialogs(); | |
| 157 gaim_blist_destroy(); | |
| 158 | |
| 159 show_login(); | |
| 160 } | |
| 161 | |
| 162 /* | |
| 163 * d:)->-< | |
| 164 * | |
| 165 * d:O-\-< | |
| 166 * | |
| 167 * d:D-/-< | |
| 168 * | |
| 169 * d8D->-< DANCE! | |
| 170 */ | |
| 171 | |
| 172 void | |
| 173 gaim_connection_set_state(GaimConnection *gc, GaimConnectionState state) | |
| 174 { | |
| 175 g_return_if_fail(gc != NULL); | |
| 176 | |
|
5784
72fb22b9ac98
[gaim-migrate @ 6209]
Christian Hammond <chipx86@chipx86.com>
parents:
5741
diff
changeset
|
177 if (gc->state == state) |
|
72fb22b9ac98
[gaim-migrate @ 6209]
Christian Hammond <chipx86@chipx86.com>
parents:
5741
diff
changeset
|
178 return; |
|
72fb22b9ac98
[gaim-migrate @ 6209]
Christian Hammond <chipx86@chipx86.com>
parents:
5741
diff
changeset
|
179 |
| 5563 | 180 gc->state = state; |
| 181 | |
| 182 if (gc->state == GAIM_CONNECTED) { | |
| 183 GaimConnectionUiOps *ops = gaim_get_connection_ui_ops(); | |
| 184 GaimBlistNode *gnode,*bnode; | |
| 185 GList *wins; | |
| 186 GList *add_buds=NULL; | |
| 187 | |
| 188 /* Set the time the account came online */ | |
| 189 time(&gc->login_time); | |
| 190 | |
|
5564
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
191 connections_connecting = g_list_append(connections_connecting, gc); |
|
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
192 |
| 5563 | 193 if (ops != NULL && ops->connected != NULL) |
| 194 ops->connected(gc); | |
| 195 | |
| 196 gaim_blist_show(); | |
| 197 gaim_blist_add_account(gc->account); | |
| 198 | |
| 199 /* I hate this. -- ChipX86 */ | |
| 200 gaim_setup(gc); | |
| 201 | |
| 202 /* | |
| 203 * XXX This is a hack! Remove this and replace it with a better event | |
| 204 * notification system. | |
| 205 */ | |
| 206 for (wins = gaim_get_windows(); wins != NULL; wins = wins->next) { | |
|
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5631
diff
changeset
|
207 GaimWindow *win = (GaimWindow *)wins->data; |
| 5563 | 208 gaim_conversation_update(gaim_window_get_conversation_at(win, 0), |
| 209 GAIM_CONV_ACCOUNT_ONLINE); | |
| 210 } | |
| 211 | |
| 212 gaim_event_broadcast(event_signon, gc); | |
| 213 system_log(log_signon, gc, NULL, | |
| 214 OPT_LOG_BUDDY_SIGNON | OPT_LOG_MY_SIGNON); | |
| 215 | |
| 216 #if 0 | |
| 217 /* away option given? */ | |
| 218 if (opt_away) { | |
| 219 away_on_login(opt_away_arg); | |
| 220 /* don't do it again */ | |
| 221 opt_away = 0; | |
| 222 } else if (awaymessage) { | |
| 223 serv_set_away(gc, GAIM_AWAY_CUSTOM, awaymessage->message); | |
| 224 } | |
| 225 if (opt_away_arg != NULL) { | |
| 226 g_free(opt_away_arg); | |
| 227 opt_away_arg = NULL; | |
| 228 } | |
| 229 #endif | |
| 230 | |
| 231 /* let the prpl know what buddies we pulled out of the local list */ | |
| 232 for (gnode = gaim_get_blist()->root; gnode; gnode = gnode->next) { | |
| 233 if(!GAIM_BLIST_NODE_IS_GROUP(gnode)) | |
| 234 continue; | |
| 235 for(bnode = gnode->child; bnode; bnode = bnode->next) { | |
| 236 if(GAIM_BLIST_NODE_IS_BUDDY(bnode)) { | |
| 237 struct buddy *b = (struct buddy *)bnode; | |
| 238 if(b->account == gc->account) { | |
| 239 add_buds = g_list_append(add_buds, b->name); | |
| 240 } | |
| 241 } | |
| 242 } | |
| 243 } | |
| 244 | |
| 245 if(add_buds) { | |
| 246 serv_add_buddies(gc, add_buds); | |
| 247 g_list_free(add_buds); | |
| 248 } | |
| 249 | |
| 250 serv_set_permit_deny(gc); | |
| 251 } | |
|
5564
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
252 else { |
|
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
253 connections_connecting = g_list_remove(connections_connecting, gc); |
|
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
254 } |
| 5563 | 255 } |
| 256 | |
| 257 void | |
| 258 gaim_connection_set_account(GaimConnection *gc, GaimAccount *account) | |
| 259 { | |
| 260 g_return_if_fail(gc != NULL); | |
| 261 g_return_if_fail(account != NULL); | |
| 262 | |
| 263 gc->account = account; | |
| 264 } | |
| 265 | |
| 266 void | |
| 267 gaim_connection_set_display_name(GaimConnection *gc, const char *name) | |
| 268 { | |
| 269 g_return_if_fail(gc != NULL); | |
| 270 | |
| 271 if (gc->display_name != NULL) | |
| 272 g_free(gc->display_name); | |
| 273 | |
| 274 gc->display_name = (name == NULL ? NULL : g_strdup(name)); | |
| 275 } | |
| 276 | |
| 277 GaimConnectionState | |
| 278 gaim_connection_get_state(const GaimConnection *gc) | |
| 279 { | |
| 280 g_return_val_if_fail(gc != NULL, GAIM_DISCONNECTED); | |
| 281 | |
| 282 return gc->state; | |
| 283 } | |
| 284 | |
| 285 GaimAccount * | |
| 286 gaim_connection_get_account(const GaimConnection *gc) | |
| 287 { | |
| 288 g_return_val_if_fail(gc != NULL, NULL); | |
| 289 | |
| 290 return gc->account; | |
| 291 } | |
| 292 | |
| 293 const char * | |
| 294 gaim_connection_get_display_name(const GaimConnection *gc) | |
| 295 { | |
| 296 g_return_val_if_fail(gc != NULL, NULL); | |
| 297 | |
| 298 return gc->display_name; | |
| 299 } | |
| 300 | |
| 301 void | |
| 302 gaim_connection_update_progress(GaimConnection *gc, const char *text, | |
| 303 size_t step, size_t count) | |
| 304 { | |
| 305 GaimConnectionUiOps *ops; | |
| 306 | |
| 307 g_return_if_fail(gc != NULL); | |
| 308 g_return_if_fail(text != NULL); | |
| 309 g_return_if_fail(step < count); | |
| 310 g_return_if_fail(count > 1); | |
| 311 | |
| 312 ops = gaim_get_connection_ui_ops(); | |
| 313 | |
| 314 if (ops != NULL && ops->connect_progress != NULL) | |
| 315 ops->connect_progress(gc, text, step, count); | |
| 316 } | |
| 317 | |
| 318 void | |
|
5571
113090160626
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
319 gaim_connection_notice(GaimConnection *gc, const char *text) |
|
113090160626
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
320 { |
|
113090160626
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
321 GaimConnectionUiOps *ops; |
|
113090160626
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
322 |
|
113090160626
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
323 g_return_if_fail(gc != NULL); |
|
113090160626
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
324 g_return_if_fail(text != NULL); |
|
113090160626
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
325 |
|
113090160626
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
326 ops = gaim_get_connection_ui_ops(); |
|
113090160626
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
327 |
|
113090160626
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
328 if (ops != NULL && ops->notice != NULL) |
|
113090160626
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
329 ops->notice(gc, text); |
|
113090160626
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
330 } |
|
113090160626
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
331 |
|
113090160626
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
332 void |
|
5564
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
333 gaim_connection_error(GaimConnection *gc, const char *text) |
|
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
334 { |
|
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
335 GaimConnectionUiOps *ops; |
|
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
336 |
|
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
337 g_return_if_fail(gc != NULL); |
|
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
338 g_return_if_fail(text != NULL); |
|
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
339 |
|
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
340 ops = gaim_get_connection_ui_ops(); |
|
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
341 |
|
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
342 if (ops != NULL && ops->disconnected != NULL) |
|
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
343 ops->disconnected(gc, text); |
| 5727 | 344 |
| 345 gaim_connection_disconnect(gc); | |
|
5564
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
346 } |
|
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
347 |
|
187c740f2a4e
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
348 void |
| 5563 | 349 gaim_connections_disconnect_all(void) |
| 350 { | |
| 351 GList *l; | |
| 352 | |
|
5624
4cc9e3fa22c4
[gaim-migrate @ 6031]
Christian Hammond <chipx86@chipx86.com>
parents:
5623
diff
changeset
|
353 while ((l = gaim_connections_get_all()) != NULL) |
| 5563 | 354 gaim_connection_destroy(l->data); |
| 355 } | |
| 356 | |
| 357 GList * | |
| 358 gaim_connections_get_all(void) | |
| 359 { | |
| 360 return connections; | |
| 361 } | |
| 362 | |
|
5788
8c237274189f
[gaim-migrate @ 6213]
Christian Hammond <chipx86@chipx86.com>
parents:
5784
diff
changeset
|
363 GList * |
|
8c237274189f
[gaim-migrate @ 6213]
Christian Hammond <chipx86@chipx86.com>
parents:
5784
diff
changeset
|
364 gaim_connections_get_connecting(void) |
|
8c237274189f
[gaim-migrate @ 6213]
Christian Hammond <chipx86@chipx86.com>
parents:
5784
diff
changeset
|
365 { |
|
8c237274189f
[gaim-migrate @ 6213]
Christian Hammond <chipx86@chipx86.com>
parents:
5784
diff
changeset
|
366 return connections_connecting; |
|
8c237274189f
[gaim-migrate @ 6213]
Christian Hammond <chipx86@chipx86.com>
parents:
5784
diff
changeset
|
367 } |
|
8c237274189f
[gaim-migrate @ 6213]
Christian Hammond <chipx86@chipx86.com>
parents:
5784
diff
changeset
|
368 |
| 5563 | 369 void |
| 370 gaim_set_connection_ui_ops(GaimConnectionUiOps *ops) | |
| 371 { | |
| 372 connection_ui_ops = ops; | |
| 373 } | |
| 374 | |
| 375 GaimConnectionUiOps * | |
| 376 gaim_get_connection_ui_ops(void) | |
| 377 { | |
| 378 return connection_ui_ops; | |
| 379 } | |
| 380 |
