Mon, 18 Aug 2003 01:03:43 +0000
[gaim-migrate @ 6999]
Removed the old event system and replaced it with a much better signal
system. There will most likely be some bugs in this, but it seems to be
working for now. Plugins can now generate their own signals, and other
plugins can find those plugins and connect to them. This could give
plugins a form of IPC. It's also useful for other things. It's rather
flexible, except for the damn marshalling, but there's no way around that
that I or the glib people can see.
| 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 | */ | |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5859
diff
changeset
|
23 | #include "internal.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5859
diff
changeset
|
24 | #include "blist.h" |
| 5563 | 25 | #include "connection.h" |
| 5717 | 26 | #include "debug.h" |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5859
diff
changeset
|
27 | #include "log.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5859
diff
changeset
|
28 | #include "notify.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5859
diff
changeset
|
29 | #include "prefs.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5859
diff
changeset
|
30 | #include "request.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5859
diff
changeset
|
31 | #include "server.h" |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
32 | #include "signals.h" |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5859
diff
changeset
|
33 | #include "sound.h" |
|
6106
1dc08be40f0a
[gaim-migrate @ 6567]
Mark Doliner <markdoliner@pidgin.im>
parents:
6076
diff
changeset
|
34 | #include "util.h" |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5859
diff
changeset
|
35 | |
| 5563 | 36 | static GList *connections = NULL; |
|
5564
1779a1bfbdb8
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
37 | static GList *connections_connecting = NULL; |
| 5563 | 38 | static GaimConnectionUiOps *connection_ui_ops = NULL; |
| 39 | ||
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
40 | static int connections_handle; |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5859
diff
changeset
|
41 | |
| 5563 | 42 | GaimConnection * |
| 43 | gaim_connection_new(GaimAccount *account) | |
| 44 | { | |
| 45 | GaimConnection *gc; | |
| 46 | ||
| 47 | g_return_val_if_fail(account != NULL, NULL); | |
| 48 | ||
| 49 | gc = g_new0(GaimConnection, 1); | |
| 50 | ||
| 51 | gc->prpl = gaim_find_prpl(gaim_account_get_protocol(account)); | |
| 52 | ||
| 53 | gaim_connection_set_account(gc, account); | |
| 54 | gaim_account_set_connection(account, gc); | |
| 55 | ||
| 56 | return gc; | |
| 57 | } | |
| 58 | ||
| 59 | void | |
| 60 | gaim_connection_destroy(GaimConnection *gc) | |
| 61 | { | |
|
5741
0a52405f402f
[gaim-migrate @ 6165]
Christian Hammond <chipx86@chipx86.com>
parents:
5740
diff
changeset
|
62 | GaimAccount *account; |
|
0a52405f402f
[gaim-migrate @ 6165]
Christian Hammond <chipx86@chipx86.com>
parents:
5740
diff
changeset
|
63 | |
| 5563 | 64 | g_return_if_fail(gc != NULL); |
| 65 | ||
| 66 | if (gaim_connection_get_state(gc) != GAIM_DISCONNECTED) { | |
| 67 | gaim_connection_disconnect(gc); | |
| 68 | ||
| 69 | return; | |
| 70 | } | |
| 71 | ||
|
5930
cdd2e5397cd3
[gaim-migrate @ 6370]
Christian Hammond <chipx86@chipx86.com>
parents:
5926
diff
changeset
|
72 | gaim_debug(GAIM_DEBUG_INFO, "connection", |
|
cdd2e5397cd3
[gaim-migrate @ 6370]
Christian Hammond <chipx86@chipx86.com>
parents:
5926
diff
changeset
|
73 | "Destroying connection %p\n", gc); |
|
cdd2e5397cd3
[gaim-migrate @ 6370]
Christian Hammond <chipx86@chipx86.com>
parents:
5926
diff
changeset
|
74 | |
|
5741
0a52405f402f
[gaim-migrate @ 6165]
Christian Hammond <chipx86@chipx86.com>
parents:
5740
diff
changeset
|
75 | account = gaim_connection_get_account(gc); |
|
0a52405f402f
[gaim-migrate @ 6165]
Christian Hammond <chipx86@chipx86.com>
parents:
5740
diff
changeset
|
76 | gaim_account_set_connection(account, NULL); |
|
0a52405f402f
[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 | ||
| 81 | if (gc->away != NULL) | |
| 82 | g_free(gc->away); | |
| 83 | ||
| 84 | if (gc->away_state != NULL) | |
| 85 | g_free(gc->away_state); | |
| 86 | ||
| 6393 | 87 | if (gc->disconnect_timeout) |
| 88 | g_source_remove(gc->disconnect_timeout); | |
| 89 | ||
| 5563 | 90 | g_free(gc); |
| 91 | } | |
| 92 | ||
|
6110
8c703c3453c7
[gaim-migrate @ 6572]
Mark Doliner <markdoliner@pidgin.im>
parents:
6109
diff
changeset
|
93 | static void request_pass_ok_cb(GaimAccount *account, const char *entry) |
|
6109
44e5eb92b617
[gaim-migrate @ 6571]
Mark Doliner <markdoliner@pidgin.im>
parents:
6106
diff
changeset
|
94 | { |
|
44e5eb92b617
[gaim-migrate @ 6571]
Mark Doliner <markdoliner@pidgin.im>
parents:
6106
diff
changeset
|
95 | gaim_account_set_password(account, (*entry != '\0') ? entry : NULL); |
|
44e5eb92b617
[gaim-migrate @ 6571]
Mark Doliner <markdoliner@pidgin.im>
parents:
6106
diff
changeset
|
96 | |
|
6110
8c703c3453c7
[gaim-migrate @ 6572]
Mark Doliner <markdoliner@pidgin.im>
parents:
6109
diff
changeset
|
97 | gaim_account_connect(account); |
|
6109
44e5eb92b617
[gaim-migrate @ 6571]
Mark Doliner <markdoliner@pidgin.im>
parents:
6106
diff
changeset
|
98 | } |
|
44e5eb92b617
[gaim-migrate @ 6571]
Mark Doliner <markdoliner@pidgin.im>
parents:
6106
diff
changeset
|
99 | |
|
44e5eb92b617
[gaim-migrate @ 6571]
Mark Doliner <markdoliner@pidgin.im>
parents:
6106
diff
changeset
|
100 | |
| 5563 | 101 | void |
| 102 | gaim_connection_connect(GaimConnection *gc) | |
| 103 | { | |
| 104 | GaimAccount *account; | |
| 105 | GaimConnectionUiOps *ops; | |
| 106 | GaimPluginProtocolInfo *prpl_info = NULL; | |
| 107 | ||
| 108 | g_return_if_fail(gc != NULL); | |
| 109 | ||
|
5930
cdd2e5397cd3
[gaim-migrate @ 6370]
Christian Hammond <chipx86@chipx86.com>
parents:
5926
diff
changeset
|
110 | gaim_debug(GAIM_DEBUG_INFO, "connection", |
|
cdd2e5397cd3
[gaim-migrate @ 6370]
Christian Hammond <chipx86@chipx86.com>
parents:
5926
diff
changeset
|
111 | "Connecting. gc = %p\n", gc); |
|
cdd2e5397cd3
[gaim-migrate @ 6370]
Christian Hammond <chipx86@chipx86.com>
parents:
5926
diff
changeset
|
112 | |
| 5563 | 113 | ops = gaim_get_connection_ui_ops(); |
| 114 | ||
| 6136 | 115 | if (gc->prpl != NULL) |
| 116 | prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl); | |
| 117 | else { | |
| 118 | gchar *message = g_strdup_printf(_("Missing protocol plugin for %s"), | |
| 119 | gaim_account_get_username(gaim_connection_get_account(gc))); | |
| 120 | ||
| 121 | gaim_debug(GAIM_DEBUG_ERROR, "connection", | |
| 122 | "Could not get prpl info for %p\n", gc); | |
| 123 | gaim_notify_error(NULL, _("Connection Error"), | |
| 124 | message, NULL); | |
| 125 | g_free(message); | |
| 126 | return; | |
| 127 | } | |
| 5563 | 128 | |
| 129 | account = gaim_connection_get_account(gc); | |
| 130 | ||
|
6109
44e5eb92b617
[gaim-migrate @ 6571]
Mark Doliner <markdoliner@pidgin.im>
parents:
6106
diff
changeset
|
131 | if (gaim_connection_get_state(gc) != GAIM_DISCONNECTED) |
|
44e5eb92b617
[gaim-migrate @ 6571]
Mark Doliner <markdoliner@pidgin.im>
parents:
6106
diff
changeset
|
132 | return; |
|
44e5eb92b617
[gaim-migrate @ 6571]
Mark Doliner <markdoliner@pidgin.im>
parents:
6106
diff
changeset
|
133 | |
|
6036
285e48913c72
[gaim-migrate @ 6486]
Mark Doliner <markdoliner@pidgin.im>
parents:
6029
diff
changeset
|
134 | if (!(prpl_info->options & OPT_PROTO_NO_PASSWORD) && |
|
6231
48e5eff01f7a
[gaim-migrate @ 6724]
Mark Doliner <markdoliner@pidgin.im>
parents:
6136
diff
changeset
|
135 | !(prpl_info->options & OPT_PROTO_PASSWORD_OPTIONAL) && |
|
48e5eff01f7a
[gaim-migrate @ 6724]
Mark Doliner <markdoliner@pidgin.im>
parents:
6136
diff
changeset
|
136 | gaim_account_get_password(account) == NULL) { |
|
6111
95ddad505e67
[gaim-migrate @ 6573]
Mark Doliner <markdoliner@pidgin.im>
parents:
6110
diff
changeset
|
137 | gchar *primary; |
|
6231
48e5eff01f7a
[gaim-migrate @ 6724]
Mark Doliner <markdoliner@pidgin.im>
parents:
6136
diff
changeset
|
138 | gchar *escaped; |
|
48e5eff01f7a
[gaim-migrate @ 6724]
Mark Doliner <markdoliner@pidgin.im>
parents:
6136
diff
changeset
|
139 | const gchar *username = gaim_account_get_username(account); |
|
48e5eff01f7a
[gaim-migrate @ 6724]
Mark Doliner <markdoliner@pidgin.im>
parents:
6136
diff
changeset
|
140 | |
|
5930
cdd2e5397cd3
[gaim-migrate @ 6370]
Christian Hammond <chipx86@chipx86.com>
parents:
5926
diff
changeset
|
141 | gaim_debug(GAIM_DEBUG_INFO, "connection", "Requesting password\n"); |
|
6468
7500be54656d
[gaim-migrate @ 6977]
Christian Hammond <chipx86@chipx86.com>
parents:
6460
diff
changeset
|
142 | gaim_connection_destroy(gc); |
|
6231
48e5eff01f7a
[gaim-migrate @ 6724]
Mark Doliner <markdoliner@pidgin.im>
parents:
6136
diff
changeset
|
143 | escaped = g_markup_escape_text(username, strlen(username)); |
|
48e5eff01f7a
[gaim-migrate @ 6724]
Mark Doliner <markdoliner@pidgin.im>
parents:
6136
diff
changeset
|
144 | primary = g_strdup_printf(_("Enter password for %s"), escaped); |
|
6111
95ddad505e67
[gaim-migrate @ 6573]
Mark Doliner <markdoliner@pidgin.im>
parents:
6110
diff
changeset
|
145 | gaim_request_input(gc, NULL, primary, NULL, NULL, FALSE, TRUE, |
|
6109
44e5eb92b617
[gaim-migrate @ 6571]
Mark Doliner <markdoliner@pidgin.im>
parents:
6106
diff
changeset
|
146 | _("OK"), G_CALLBACK(request_pass_ok_cb), |
|
6110
8c703c3453c7
[gaim-migrate @ 6572]
Mark Doliner <markdoliner@pidgin.im>
parents:
6109
diff
changeset
|
147 | _("Cancel"), NULL, account); |
|
6111
95ddad505e67
[gaim-migrate @ 6573]
Mark Doliner <markdoliner@pidgin.im>
parents:
6110
diff
changeset
|
148 | g_free(primary); |
|
6231
48e5eff01f7a
[gaim-migrate @ 6724]
Mark Doliner <markdoliner@pidgin.im>
parents:
6136
diff
changeset
|
149 | g_free(escaped); |
| 5563 | 150 | |
| 151 | return; | |
| 152 | } | |
| 153 | ||
| 154 | gaim_connection_set_state(gc, GAIM_CONNECTING); | |
| 155 | ||
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
156 | gaim_signal_emit(gaim_connections_get_handle(), "signing-on", gc); |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
157 | |
|
5581
646cda748437
[gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents:
5571
diff
changeset
|
158 | gaim_debug(GAIM_DEBUG_INFO, "connection", "Calling serv_login\n"); |
|
646cda748437
[gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents:
5571
diff
changeset
|
159 | |
|
6297
1be1bc3d9f17
[gaim-migrate @ 6796]
Christian Hammond <chipx86@chipx86.com>
parents:
6296
diff
changeset
|
160 | connections = g_list_append(connections, gc); |
|
1be1bc3d9f17
[gaim-migrate @ 6796]
Christian Hammond <chipx86@chipx86.com>
parents:
6296
diff
changeset
|
161 | |
| 5563 | 162 | serv_login(account); |
| 163 | } | |
| 164 | ||
| 165 | void | |
| 166 | gaim_connection_disconnect(GaimConnection *gc) | |
| 167 | { | |
|
5926
f0c5bbf16793
[gaim-migrate @ 6366]
Christian Hammond <chipx86@chipx86.com>
parents:
5905
diff
changeset
|
168 | GaimAccount *account; |
| 5563 | 169 | GList *wins; |
| 170 | ||
| 171 | g_return_if_fail(gc != NULL); | |
| 172 | ||
|
5926
f0c5bbf16793
[gaim-migrate @ 6366]
Christian Hammond <chipx86@chipx86.com>
parents:
5905
diff
changeset
|
173 | account = gaim_connection_get_account(gc); |
|
f0c5bbf16793
[gaim-migrate @ 6366]
Christian Hammond <chipx86@chipx86.com>
parents:
5905
diff
changeset
|
174 | |
|
f0c5bbf16793
[gaim-migrate @ 6366]
Christian Hammond <chipx86@chipx86.com>
parents:
5905
diff
changeset
|
175 | if (gaim_account_get_connection(account) != NULL) { |
|
f0c5bbf16793
[gaim-migrate @ 6366]
Christian Hammond <chipx86@chipx86.com>
parents:
5905
diff
changeset
|
176 | gaim_account_disconnect(account); |
|
f0c5bbf16793
[gaim-migrate @ 6366]
Christian Hammond <chipx86@chipx86.com>
parents:
5905
diff
changeset
|
177 | return; |
|
f0c5bbf16793
[gaim-migrate @ 6366]
Christian Hammond <chipx86@chipx86.com>
parents:
5905
diff
changeset
|
178 | } |
|
f0c5bbf16793
[gaim-migrate @ 6366]
Christian Hammond <chipx86@chipx86.com>
parents:
5905
diff
changeset
|
179 | |
|
5930
cdd2e5397cd3
[gaim-migrate @ 6370]
Christian Hammond <chipx86@chipx86.com>
parents:
5926
diff
changeset
|
180 | gaim_debug(GAIM_DEBUG_INFO, "connection", |
|
cdd2e5397cd3
[gaim-migrate @ 6370]
Christian Hammond <chipx86@chipx86.com>
parents:
5926
diff
changeset
|
181 | "Disconnecting connection %p\n", gc); |
|
cdd2e5397cd3
[gaim-migrate @ 6370]
Christian Hammond <chipx86@chipx86.com>
parents:
5926
diff
changeset
|
182 | |
|
5740
ec9cff0dedea
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
183 | if (gaim_connection_get_state(gc) != GAIM_DISCONNECTED) { |
|
ec9cff0dedea
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
184 | if (gaim_connection_get_state(gc) != GAIM_CONNECTING) |
|
ec9cff0dedea
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
185 | gaim_blist_remove_account(gaim_connection_get_account(gc)); |
| 5563 | 186 | |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
187 | gaim_signal_emit(gaim_connections_get_handle(), "signing-off", gc); |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
188 | |
|
5740
ec9cff0dedea
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
189 | serv_close(gc); |
| 5563 | 190 | |
| 6018 | 191 | connections = g_list_remove(connections, gc); |
| 192 | ||
|
5859
e9e5fb0bbfe9
[gaim-migrate @ 6290]
Christian Hammond <chipx86@chipx86.com>
parents:
5788
diff
changeset
|
193 | gaim_connection_set_state(gc, GAIM_DISCONNECTED); |
| 5563 | 194 | |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
195 | gaim_signal_emit(gaim_connections_get_handle(), "signed-off", gc); |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
196 | |
|
5740
ec9cff0dedea
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
197 | system_log(log_signoff, gc, NULL, |
|
ec9cff0dedea
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
198 | OPT_LOG_BUDDY_SIGNON | OPT_LOG_MY_SIGNON); |
|
5615
2eb715cbbd9b
[gaim-migrate @ 6022]
Christian Hammond <chipx86@chipx86.com>
parents:
5581
diff
changeset
|
199 | |
|
5740
ec9cff0dedea
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
200 | /* |
|
ec9cff0dedea
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
201 | * XXX This is a hack! Remove this and replace it with a better event |
|
ec9cff0dedea
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
202 | * notification system. |
|
ec9cff0dedea
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
203 | */ |
|
ec9cff0dedea
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
204 | for (wins = gaim_get_windows(); wins != NULL; wins = wins->next) { |
|
ec9cff0dedea
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
205 | GaimWindow *win = (GaimWindow *)wins->data; |
|
ec9cff0dedea
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
206 | gaim_conversation_update(gaim_window_get_conversation_at(win, 0), |
|
ec9cff0dedea
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
207 | GAIM_CONV_ACCOUNT_OFFLINE); |
|
ec9cff0dedea
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
208 | } |
|
ec9cff0dedea
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
209 | |
|
ec9cff0dedea
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
210 | gaim_request_close_with_handle(gc); |
|
ec9cff0dedea
[gaim-migrate @ 6164]
Christian Hammond <chipx86@chipx86.com>
parents:
5727
diff
changeset
|
211 | gaim_notify_close_with_handle(gc); |
| 5563 | 212 | } |
| 213 | ||
|
5622
3180ced42da4
[gaim-migrate @ 6029]
Christian Hammond <chipx86@chipx86.com>
parents:
5615
diff
changeset
|
214 | gaim_connection_destroy(gc); |
| 5563 | 215 | } |
| 216 | ||
|
6029
85d6afa168fb
[gaim-migrate @ 6479]
Mark Doliner <markdoliner@pidgin.im>
parents:
6018
diff
changeset
|
217 | gboolean |
|
85d6afa168fb
[gaim-migrate @ 6479]
Mark Doliner <markdoliner@pidgin.im>
parents:
6018
diff
changeset
|
218 | gaim_connection_disconnect_cb(gpointer data) |
|
85d6afa168fb
[gaim-migrate @ 6479]
Mark Doliner <markdoliner@pidgin.im>
parents:
6018
diff
changeset
|
219 | { |
| 6076 | 220 | GaimAccount *account = data; |
| 221 | GaimConnection *gc = gaim_account_get_connection(account); | |
|
6029
85d6afa168fb
[gaim-migrate @ 6479]
Mark Doliner <markdoliner@pidgin.im>
parents:
6018
diff
changeset
|
222 | |
| 6076 | 223 | if(gc) |
| 224 | gaim_connection_disconnect(gc); | |
|
6029
85d6afa168fb
[gaim-migrate @ 6479]
Mark Doliner <markdoliner@pidgin.im>
parents:
6018
diff
changeset
|
225 | |
|
85d6afa168fb
[gaim-migrate @ 6479]
Mark Doliner <markdoliner@pidgin.im>
parents:
6018
diff
changeset
|
226 | return FALSE; |
|
85d6afa168fb
[gaim-migrate @ 6479]
Mark Doliner <markdoliner@pidgin.im>
parents:
6018
diff
changeset
|
227 | } |
|
85d6afa168fb
[gaim-migrate @ 6479]
Mark Doliner <markdoliner@pidgin.im>
parents:
6018
diff
changeset
|
228 | |
| 5563 | 229 | /* |
| 230 | * d:)->-< | |
| 231 | * | |
| 232 | * d:O-\-< | |
| 233 | * | |
| 234 | * d:D-/-< | |
| 235 | * | |
| 236 | * d8D->-< DANCE! | |
| 237 | */ | |
| 238 | ||
| 239 | void | |
| 240 | gaim_connection_set_state(GaimConnection *gc, GaimConnectionState state) | |
| 241 | { | |
|
5885
223ac977eed2
[gaim-migrate @ 6317]
Christian Hammond <chipx86@chipx86.com>
parents:
5883
diff
changeset
|
242 | GaimConnectionUiOps *ops; |
|
223ac977eed2
[gaim-migrate @ 6317]
Christian Hammond <chipx86@chipx86.com>
parents:
5883
diff
changeset
|
243 | |
| 5563 | 244 | g_return_if_fail(gc != NULL); |
| 245 | ||
|
5784
4c9046760b5b
[gaim-migrate @ 6209]
Christian Hammond <chipx86@chipx86.com>
parents:
5741
diff
changeset
|
246 | if (gc->state == state) |
|
4c9046760b5b
[gaim-migrate @ 6209]
Christian Hammond <chipx86@chipx86.com>
parents:
5741
diff
changeset
|
247 | return; |
|
4c9046760b5b
[gaim-migrate @ 6209]
Christian Hammond <chipx86@chipx86.com>
parents:
5741
diff
changeset
|
248 | |
| 5563 | 249 | gc->state = state; |
| 250 | ||
|
5885
223ac977eed2
[gaim-migrate @ 6317]
Christian Hammond <chipx86@chipx86.com>
parents:
5883
diff
changeset
|
251 | ops = gaim_get_connection_ui_ops(); |
|
223ac977eed2
[gaim-migrate @ 6317]
Christian Hammond <chipx86@chipx86.com>
parents:
5883
diff
changeset
|
252 | |
|
5905
62a6bdbc09b7
[gaim-migrate @ 6337]
Robert McQueen <robot101@debian.org>
parents:
5885
diff
changeset
|
253 | if (gc->state == GAIM_CONNECTING) { |
|
62a6bdbc09b7
[gaim-migrate @ 6337]
Robert McQueen <robot101@debian.org>
parents:
5885
diff
changeset
|
254 | connections_connecting = g_list_append(connections_connecting, gc); |
|
62a6bdbc09b7
[gaim-migrate @ 6337]
Robert McQueen <robot101@debian.org>
parents:
5885
diff
changeset
|
255 | } |
|
62a6bdbc09b7
[gaim-migrate @ 6337]
Robert McQueen <robot101@debian.org>
parents:
5885
diff
changeset
|
256 | else { |
|
5885
223ac977eed2
[gaim-migrate @ 6317]
Christian Hammond <chipx86@chipx86.com>
parents:
5883
diff
changeset
|
257 | connections_connecting = g_list_remove(connections_connecting, gc); |
|
5905
62a6bdbc09b7
[gaim-migrate @ 6337]
Robert McQueen <robot101@debian.org>
parents:
5885
diff
changeset
|
258 | } |
|
5885
223ac977eed2
[gaim-migrate @ 6317]
Christian Hammond <chipx86@chipx86.com>
parents:
5883
diff
changeset
|
259 | |
| 5563 | 260 | if (gc->state == GAIM_CONNECTED) { |
| 261 | GaimBlistNode *gnode,*bnode; | |
| 262 | GList *wins; | |
| 263 | GList *add_buds=NULL; | |
| 264 | ||
| 265 | /* Set the time the account came online */ | |
| 266 | time(&gc->login_time); | |
| 267 | ||
| 268 | if (ops != NULL && ops->connected != NULL) | |
| 269 | ops->connected(gc); | |
| 270 | ||
| 271 | gaim_blist_show(); | |
| 272 | gaim_blist_add_account(gc->account); | |
| 273 | ||
| 274 | /* | |
| 275 | * XXX This is a hack! Remove this and replace it with a better event | |
| 276 | * notification system. | |
| 277 | */ | |
| 278 | for (wins = gaim_get_windows(); wins != NULL; wins = wins->next) { | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5631
diff
changeset
|
279 | GaimWindow *win = (GaimWindow *)wins->data; |
| 5563 | 280 | gaim_conversation_update(gaim_window_get_conversation_at(win, 0), |
| 281 | GAIM_CONV_ACCOUNT_ONLINE); | |
| 282 | } | |
| 283 | ||
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
284 | gaim_signal_emit(gaim_connections_get_handle(), "signed-on", gc); |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
285 | |
| 5563 | 286 | system_log(log_signon, gc, NULL, |
| 287 | OPT_LOG_BUDDY_SIGNON | OPT_LOG_MY_SIGNON); | |
| 288 | ||
| 289 | #if 0 | |
| 290 | /* away option given? */ | |
| 291 | if (opt_away) { | |
| 292 | away_on_login(opt_away_arg); | |
| 293 | /* don't do it again */ | |
| 294 | opt_away = 0; | |
| 295 | } else if (awaymessage) { | |
| 296 | serv_set_away(gc, GAIM_AWAY_CUSTOM, awaymessage->message); | |
| 297 | } | |
| 298 | if (opt_away_arg != NULL) { | |
| 299 | g_free(opt_away_arg); | |
| 300 | opt_away_arg = NULL; | |
| 301 | } | |
| 302 | #endif | |
| 303 | ||
| 304 | /* let the prpl know what buddies we pulled out of the local list */ | |
| 305 | for (gnode = gaim_get_blist()->root; gnode; gnode = gnode->next) { | |
| 306 | if(!GAIM_BLIST_NODE_IS_GROUP(gnode)) | |
| 307 | continue; | |
| 308 | for(bnode = gnode->child; bnode; bnode = bnode->next) { | |
| 309 | if(GAIM_BLIST_NODE_IS_BUDDY(bnode)) { | |
| 310 | struct buddy *b = (struct buddy *)bnode; | |
| 311 | if(b->account == gc->account) { | |
| 312 | add_buds = g_list_append(add_buds, b->name); | |
| 313 | } | |
| 314 | } | |
| 315 | } | |
| 316 | } | |
| 317 | ||
| 318 | if(add_buds) { | |
| 319 | serv_add_buddies(gc, add_buds); | |
| 320 | g_list_free(add_buds); | |
| 321 | } | |
| 322 | ||
| 323 | serv_set_permit_deny(gc); | |
| 324 | } | |
|
5885
223ac977eed2
[gaim-migrate @ 6317]
Christian Hammond <chipx86@chipx86.com>
parents:
5883
diff
changeset
|
325 | else if (gc->state == GAIM_DISCONNECTED) { |
|
223ac977eed2
[gaim-migrate @ 6317]
Christian Hammond <chipx86@chipx86.com>
parents:
5883
diff
changeset
|
326 | if (ops != NULL && ops->disconnected != NULL) |
|
6460
fc288e7221ca
[gaim-migrate @ 6969]
Christian Hammond <chipx86@chipx86.com>
parents:
6393
diff
changeset
|
327 | ops->disconnected(gc); |
|
5564
1779a1bfbdb8
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
328 | } |
| 5563 | 329 | } |
| 330 | ||
| 331 | void | |
| 332 | gaim_connection_set_account(GaimConnection *gc, GaimAccount *account) | |
| 333 | { | |
| 334 | g_return_if_fail(gc != NULL); | |
| 335 | g_return_if_fail(account != NULL); | |
| 336 | ||
| 337 | gc->account = account; | |
| 338 | } | |
| 339 | ||
| 340 | void | |
| 341 | gaim_connection_set_display_name(GaimConnection *gc, const char *name) | |
| 342 | { | |
| 343 | g_return_if_fail(gc != NULL); | |
| 344 | ||
| 345 | if (gc->display_name != NULL) | |
| 346 | g_free(gc->display_name); | |
| 347 | ||
| 348 | gc->display_name = (name == NULL ? NULL : g_strdup(name)); | |
| 349 | } | |
| 350 | ||
| 351 | GaimConnectionState | |
| 352 | gaim_connection_get_state(const GaimConnection *gc) | |
| 353 | { | |
| 354 | g_return_val_if_fail(gc != NULL, GAIM_DISCONNECTED); | |
| 355 | ||
| 356 | return gc->state; | |
| 357 | } | |
| 358 | ||
| 359 | GaimAccount * | |
| 360 | gaim_connection_get_account(const GaimConnection *gc) | |
| 361 | { | |
| 362 | g_return_val_if_fail(gc != NULL, NULL); | |
| 363 | ||
| 364 | return gc->account; | |
| 365 | } | |
| 366 | ||
| 367 | const char * | |
| 368 | gaim_connection_get_display_name(const GaimConnection *gc) | |
| 369 | { | |
| 370 | g_return_val_if_fail(gc != NULL, NULL); | |
| 371 | ||
| 372 | return gc->display_name; | |
| 373 | } | |
| 374 | ||
| 375 | void | |
| 376 | gaim_connection_update_progress(GaimConnection *gc, const char *text, | |
| 377 | size_t step, size_t count) | |
| 378 | { | |
| 379 | GaimConnectionUiOps *ops; | |
| 380 | ||
| 381 | g_return_if_fail(gc != NULL); | |
| 382 | g_return_if_fail(text != NULL); | |
| 383 | g_return_if_fail(step < count); | |
| 384 | g_return_if_fail(count > 1); | |
| 385 | ||
| 386 | ops = gaim_get_connection_ui_ops(); | |
| 387 | ||
| 388 | if (ops != NULL && ops->connect_progress != NULL) | |
| 389 | ops->connect_progress(gc, text, step, count); | |
| 390 | } | |
| 391 | ||
| 392 | void | |
|
5571
b709464f507e
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
393 | gaim_connection_notice(GaimConnection *gc, const char *text) |
|
b709464f507e
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
394 | { |
|
b709464f507e
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
395 | GaimConnectionUiOps *ops; |
|
b709464f507e
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
396 | |
|
b709464f507e
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
397 | g_return_if_fail(gc != NULL); |
|
b709464f507e
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
398 | g_return_if_fail(text != NULL); |
|
b709464f507e
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
399 | |
|
b709464f507e
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
400 | ops = gaim_get_connection_ui_ops(); |
|
b709464f507e
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
401 | |
|
b709464f507e
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
402 | if (ops != NULL && ops->notice != NULL) |
|
b709464f507e
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
403 | ops->notice(gc, text); |
|
b709464f507e
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
404 | } |
|
b709464f507e
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
405 | |
|
b709464f507e
[gaim-migrate @ 5973]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
406 | void |
|
5564
1779a1bfbdb8
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
407 | gaim_connection_error(GaimConnection *gc, const char *text) |
|
1779a1bfbdb8
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
408 | { |
|
1779a1bfbdb8
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
409 | GaimConnectionUiOps *ops; |
|
1779a1bfbdb8
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
410 | |
|
1779a1bfbdb8
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
411 | g_return_if_fail(gc != NULL); |
|
1779a1bfbdb8
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
412 | g_return_if_fail(text != NULL); |
|
1779a1bfbdb8
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
413 | |
| 6393 | 414 | /* If we've already got one error, we don't need any more */ |
|
6460
fc288e7221ca
[gaim-migrate @ 6969]
Christian Hammond <chipx86@chipx86.com>
parents:
6393
diff
changeset
|
415 | if (gc->disconnect_timeout) |
| 6393 | 416 | return; |
| 417 | ||
|
5564
1779a1bfbdb8
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
418 | ops = gaim_get_connection_ui_ops(); |
|
1779a1bfbdb8
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
419 | |
|
6460
fc288e7221ca
[gaim-migrate @ 6969]
Christian Hammond <chipx86@chipx86.com>
parents:
6393
diff
changeset
|
420 | if (ops != NULL) { |
|
fc288e7221ca
[gaim-migrate @ 6969]
Christian Hammond <chipx86@chipx86.com>
parents:
6393
diff
changeset
|
421 | if (ops->report_disconnect != NULL) |
|
fc288e7221ca
[gaim-migrate @ 6969]
Christian Hammond <chipx86@chipx86.com>
parents:
6393
diff
changeset
|
422 | ops->report_disconnect(gc, text); |
|
fc288e7221ca
[gaim-migrate @ 6969]
Christian Hammond <chipx86@chipx86.com>
parents:
6393
diff
changeset
|
423 | |
|
fc288e7221ca
[gaim-migrate @ 6969]
Christian Hammond <chipx86@chipx86.com>
parents:
6393
diff
changeset
|
424 | if (ops->disconnected != NULL) |
|
fc288e7221ca
[gaim-migrate @ 6969]
Christian Hammond <chipx86@chipx86.com>
parents:
6393
diff
changeset
|
425 | ops->disconnected(gc); |
|
fc288e7221ca
[gaim-migrate @ 6969]
Christian Hammond <chipx86@chipx86.com>
parents:
6393
diff
changeset
|
426 | } |
| 5727 | 427 | |
| 6393 | 428 | gc->disconnect_timeout = g_timeout_add(0, gaim_connection_disconnect_cb, |
| 6076 | 429 | gaim_connection_get_account(gc)); |
|
5564
1779a1bfbdb8
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
430 | } |
|
1779a1bfbdb8
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
431 | |
|
1779a1bfbdb8
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
432 | void |
| 5563 | 433 | gaim_connections_disconnect_all(void) |
| 434 | { | |
| 435 | GList *l; | |
|
6113
5bc7394e69ea
[gaim-migrate @ 6575]
Mark Doliner <markdoliner@pidgin.im>
parents:
6111
diff
changeset
|
436 | GaimConnection *gc; |
| 5563 | 437 | |
|
6113
5bc7394e69ea
[gaim-migrate @ 6575]
Mark Doliner <markdoliner@pidgin.im>
parents:
6111
diff
changeset
|
438 | while ((l = gaim_connections_get_all()) != NULL) { |
|
5bc7394e69ea
[gaim-migrate @ 6575]
Mark Doliner <markdoliner@pidgin.im>
parents:
6111
diff
changeset
|
439 | gc = l->data; |
|
5bc7394e69ea
[gaim-migrate @ 6575]
Mark Doliner <markdoliner@pidgin.im>
parents:
6111
diff
changeset
|
440 | gc->wants_to_die = TRUE; |
|
5bc7394e69ea
[gaim-migrate @ 6575]
Mark Doliner <markdoliner@pidgin.im>
parents:
6111
diff
changeset
|
441 | gaim_connection_destroy(gc); |
|
5bc7394e69ea
[gaim-migrate @ 6575]
Mark Doliner <markdoliner@pidgin.im>
parents:
6111
diff
changeset
|
442 | } |
| 5563 | 443 | } |
| 444 | ||
| 445 | GList * | |
| 446 | gaim_connections_get_all(void) | |
| 447 | { | |
| 448 | return connections; | |
| 449 | } | |
| 450 | ||
|
5788
dd6e33a59151
[gaim-migrate @ 6213]
Christian Hammond <chipx86@chipx86.com>
parents:
5784
diff
changeset
|
451 | GList * |
|
dd6e33a59151
[gaim-migrate @ 6213]
Christian Hammond <chipx86@chipx86.com>
parents:
5784
diff
changeset
|
452 | gaim_connections_get_connecting(void) |
|
dd6e33a59151
[gaim-migrate @ 6213]
Christian Hammond <chipx86@chipx86.com>
parents:
5784
diff
changeset
|
453 | { |
|
dd6e33a59151
[gaim-migrate @ 6213]
Christian Hammond <chipx86@chipx86.com>
parents:
5784
diff
changeset
|
454 | return connections_connecting; |
|
dd6e33a59151
[gaim-migrate @ 6213]
Christian Hammond <chipx86@chipx86.com>
parents:
5784
diff
changeset
|
455 | } |
|
dd6e33a59151
[gaim-migrate @ 6213]
Christian Hammond <chipx86@chipx86.com>
parents:
5784
diff
changeset
|
456 | |
| 5563 | 457 | void |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
458 | gaim_connections_init(void) |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
459 | { |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
460 | void *handle = gaim_connections_get_handle(); |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
461 | |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
462 | gaim_signal_register(handle, "signing-on", gaim_marshal_VOID__POINTER); |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
463 | gaim_signal_register(handle, "signed-on", gaim_marshal_VOID__POINTER); |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
464 | gaim_signal_register(handle, "signing-off", gaim_marshal_VOID__POINTER); |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
465 | gaim_signal_register(handle, "signed-off", gaim_marshal_VOID__POINTER); |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
466 | } |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
467 | |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
468 | void |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
469 | gaim_connections_uninit(void) |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
470 | { |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
471 | gaim_signals_unregister_by_instance(gaim_connections_get_handle()); |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
472 | } |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
473 | |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
474 | void * |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
475 | gaim_connections_get_handle(void) |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
476 | { |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
477 | return &connections_handle; |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
478 | } |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
479 | |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6468
diff
changeset
|
480 | void |
| 5563 | 481 | gaim_set_connection_ui_ops(GaimConnectionUiOps *ops) |
| 482 | { | |
| 483 | connection_ui_ops = ops; | |
| 484 | } | |
| 485 | ||
| 486 | GaimConnectionUiOps * | |
| 487 | gaim_get_connection_ui_ops(void) | |
| 488 | { | |
| 489 | return connection_ui_ops; | |
| 490 | } |