Mercurial > pidgin
annotate plugins/autorecon.c @ 10738:55af3fa46329
[gaim-migrate @ 12340]
Lots of changes here. A lot of it stems from chaning
gaim_account_connect() so that it DOES NOT have the GaimStatus
parameter. It will attempt to use the GaimStatus of your
account from the last time it was connected (which doesn't
work quite right yet).
My goal here was to save and load each account's GaimStatuses
to accounts.xml, so if you were "away" when you signed off then
you'll be "away" when you sign back on. Not quite there yet.
committer: Tailor Script <tailor@pidgin.im>
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Sat, 26 Mar 2005 20:08:43 +0000 |
parents | 77ef3f2f0df8 |
children | 8d19e10c187f |
rev | line source |
---|---|
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5607
diff
changeset
|
1 #include "internal.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5607
diff
changeset
|
2 |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5607
diff
changeset
|
3 #include "connection.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5607
diff
changeset
|
4 #include "debug.h" |
8774 | 5 #include "pluginpref.h" |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5607
diff
changeset
|
6 #include "prpl.h" |
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
7 #include "signals.h" |
9943 | 8 #include "version.h" |
4202
59751fe608c5
[gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents:
4113
diff
changeset
|
9 |
8774 | 10 |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4590
diff
changeset
|
11 #define AUTORECON_PLUGIN_ID "core-autorecon" |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4590
diff
changeset
|
12 |
2216
66783ad29e55
[gaim-migrate @ 2226]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1818
diff
changeset
|
13 #define INITIAL 8000 |
4590 | 14 #define MAXTIME 2048000 |
2216
66783ad29e55
[gaim-migrate @ 2226]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1818
diff
changeset
|
15 |
6113 | 16 typedef struct { |
17 int delay; | |
18 guint timeout; | |
19 } GaimAutoRecon; | |
2216
66783ad29e55
[gaim-migrate @ 2226]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1818
diff
changeset
|
20 |
6113 | 21 static GHashTable *hash = NULL; |
8774 | 22 |
10020 | 23 static GSList *accountReconnecting = NULL; |
24 | |
8774 | 25 #define AUTORECON_OPT "/plugins/core/autorecon" |
10020 | 26 #define OPT_HIDE_CONNECTED AUTORECON_OPT "/hide_connected_error" |
27 #define OPT_HIDE_CONNECTING AUTORECON_OPT "/hide_connecting_error" | |
28 #define OPT_RESTORE_STATE AUTORECON_OPT "/restore_state" | |
29 #define OPT_HIDE_RECONNECTING_DIALOG AUTORECON_OPT "/hide_reconnecting_dialog" | |
8774 | 30 |
31 /* storage of original (old_ops) and modified (new_ops) ui ops to allow us to | |
32 intercept calls to report_disconnect */ | |
33 static GaimConnectionUiOps *old_ops = NULL; | |
34 static GaimConnectionUiOps *new_ops = NULL; | |
35 | |
10020 | 36 static void connect_progress(GaimConnection *gc, const char *text, |
37 size_t step, size_t step_count) { | |
38 if(old_ops == NULL || old_ops->connect_progress == NULL) { | |
39 /* there's nothing to call through to, so don't bother | |
40 checking prefs */ | |
41 return; | |
42 } else if(gaim_prefs_get_bool(OPT_HIDE_RECONNECTING_DIALOG) && accountReconnecting && | |
43 g_slist_find(accountReconnecting, gc->account)) { | |
44 /* this is a reconnecting, and we're hiding those */ | |
45 gaim_debug(GAIM_DEBUG_INFO, "autorecon", | |
46 "hide connecting dialog while reconnecting\n"); | |
47 return; | |
48 } | |
49 | |
50 old_ops->connect_progress(gc, text, step, step_count); | |
51 } | |
52 | |
53 static void connected(GaimConnection *gc) { | |
54 if(old_ops == NULL || old_ops->connected == NULL) { | |
55 /* there's nothing to call through to, so don't bother | |
56 checking prefs */ | |
57 return; | |
58 } else if(gaim_prefs_get_bool(OPT_HIDE_RECONNECTING_DIALOG) && accountReconnecting && | |
59 g_slist_find(accountReconnecting, gc->account)) { | |
60 /* this is a reconnecting, and we're hiding those */ | |
61 gaim_debug(GAIM_DEBUG_INFO, "autorecon", | |
62 "hide connecting dialog while reconnecting\n"); | |
63 return; | |
64 } | |
65 | |
66 old_ops->connected(gc); | |
67 } | |
68 | |
69 static void disconnected(GaimConnection *gc) { | |
70 if(old_ops == NULL || old_ops->disconnected == NULL) { | |
71 /* there's nothing to call through to, so don't bother | |
72 checking prefs */ | |
73 return; | |
74 } else if(gaim_prefs_get_bool(OPT_HIDE_RECONNECTING_DIALOG) && accountReconnecting && | |
75 g_slist_find(accountReconnecting, gc->account)) { | |
76 /* this is a reconnecting, and we're hiding those */ | |
77 gaim_debug(GAIM_DEBUG_INFO, "autorecon", | |
78 "hide connecting dialog while reconnecting\n"); | |
79 return; | |
80 } | |
81 | |
82 old_ops->disconnected(gc); | |
83 } | |
84 | |
85 static void notice(GaimConnection *gc, const char *text) { | |
86 if(old_ops == NULL || old_ops->notice == NULL) { | |
87 /* there's nothing to call through to, so don't bother | |
88 checking prefs */ | |
89 return; | |
90 } else if(gaim_prefs_get_bool(OPT_HIDE_RECONNECTING_DIALOG) && accountReconnecting && | |
91 g_slist_find(accountReconnecting, gc->account)) { | |
92 /* this is a reconnecting, and we're hiding those */ | |
93 gaim_debug(GAIM_DEBUG_INFO, "autorecon", | |
94 "hide connecting dialog while reconnecting\n"); | |
95 } | |
96 | |
97 old_ops->notice(gc, text); | |
98 } | |
8774 | 99 |
100 static void report_disconnect(GaimConnection *gc, const char *text) { | |
101 | |
102 if(old_ops == NULL || old_ops->report_disconnect == NULL) { | |
103 /* there's nothing to call through to, so don't bother | |
104 checking prefs */ | |
105 return; | |
106 | |
107 } else if(gc->state == GAIM_CONNECTED | |
108 && gaim_prefs_get_bool(OPT_HIDE_CONNECTED)) { | |
109 /* this is a connected error, and we're hiding those */ | |
110 gaim_debug(GAIM_DEBUG_INFO, "autorecon", | |
10345 | 111 "hid disconnect error message (%s)\n", text); |
8774 | 112 return; |
113 | |
114 } else if(gc->state == GAIM_CONNECTING | |
115 && gaim_prefs_get_bool(OPT_HIDE_CONNECTING)) { | |
116 /* this is a connecting error, and we're hiding those */ | |
117 gaim_debug(GAIM_DEBUG_INFO, "autorecon", | |
10345 | 118 "hid error message while connecting (%s)\n", text); |
8774 | 119 return; |
120 } | |
121 | |
122 /* if we haven't returned by now, then let's pass to the real | |
123 function */ | |
124 old_ops->report_disconnect(gc, text); | |
125 } | |
126 | |
127 | |
2216
66783ad29e55
[gaim-migrate @ 2226]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1818
diff
changeset
|
128 static gboolean do_signon(gpointer data) { |
5587
1c55b1540e18
[gaim-migrate @ 5991]
Christian Hammond <chipx86@chipx86.com>
parents:
5227
diff
changeset
|
129 GaimAccount *account = data; |
6113 | 130 GaimAutoRecon *info; |
131 | |
5227
6d1707dc8c3d
[gaim-migrate @ 5597]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
132 gaim_debug(GAIM_DEBUG_INFO, "autorecon", "do_signon called\n"); |
6113 | 133 g_return_val_if_fail(account != NULL, FALSE); |
134 info = g_hash_table_lookup(hash, account); | |
4494
b5a50a6a13b0
[gaim-migrate @ 4769]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4491
diff
changeset
|
135 |
5607 | 136 if (g_list_index(gaim_accounts_get_all(), account) < 0) |
1817
b367beee6448
[gaim-migrate @ 1827]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1404
diff
changeset
|
137 return FALSE; |
6113 | 138 |
7372 | 139 if(info) |
140 info->timeout = 0; | |
141 | |
5587
1c55b1540e18
[gaim-migrate @ 5991]
Christian Hammond <chipx86@chipx86.com>
parents:
5227
diff
changeset
|
142 gaim_debug(GAIM_DEBUG_INFO, "autorecon", "calling gaim_account_connect\n"); |
10738 | 143 gaim_account_connect(account); |
5587
1c55b1540e18
[gaim-migrate @ 5991]
Christian Hammond <chipx86@chipx86.com>
parents:
5227
diff
changeset
|
144 gaim_debug(GAIM_DEBUG_INFO, "autorecon", "done calling gaim_account_connect\n"); |
6113 | 145 |
1817
b367beee6448
[gaim-migrate @ 1827]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1404
diff
changeset
|
146 return FALSE; |
1378
aedeb1218a0a
[gaim-migrate @ 1388]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1165
diff
changeset
|
147 } |
aedeb1218a0a
[gaim-migrate @ 1388]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1165
diff
changeset
|
148 |
8774 | 149 |
5587
1c55b1540e18
[gaim-migrate @ 5991]
Christian Hammond <chipx86@chipx86.com>
parents:
5227
diff
changeset
|
150 static void reconnect(GaimConnection *gc, void *m) { |
6113 | 151 GaimAccount *account; |
152 GaimAutoRecon *info; | |
10020 | 153 GSList* listAccount; |
6113 | 154 |
155 g_return_if_fail(gc != NULL); | |
156 account = gaim_connection_get_account(gc); | |
157 info = g_hash_table_lookup(hash, account); | |
10020 | 158 if (accountReconnecting) |
159 listAccount = g_slist_find(accountReconnecting, account); | |
160 else | |
161 listAccount = NULL; | |
6113 | 162 |
2216
66783ad29e55
[gaim-migrate @ 2226]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1818
diff
changeset
|
163 if (!gc->wants_to_die) { |
6113 | 164 if (info == NULL) { |
165 info = g_new0(GaimAutoRecon, 1); | |
166 g_hash_table_insert(hash, account, info); | |
167 info->delay = INITIAL; | |
8249 | 168 } else { |
6113 | 169 info->delay = MIN(2 * info->delay, MAXTIME); |
8250 | 170 if (info->timeout != 0) |
171 g_source_remove(info->timeout); | |
8249 | 172 } |
6113 | 173 info->timeout = g_timeout_add(info->delay, do_signon, account); |
10020 | 174 |
175 if (!listAccount) | |
176 accountReconnecting = g_slist_prepend(accountReconnecting, account); | |
6113 | 177 } else if (info != NULL) { |
178 g_hash_table_remove(hash, account); | |
10020 | 179 |
180 if (listAccount) | |
181 accountReconnecting = g_slist_delete_link(accountReconnecting, listAccount); | |
2216
66783ad29e55
[gaim-migrate @ 2226]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1818
diff
changeset
|
182 } |
9546 | 183 } |
8774 | 184 |
6113 | 185 static void |
10020 | 186 reconnected(GaimConnection *gc, void *m) { |
187 GaimAccount *account; | |
188 | |
10574 | 189 g_return_if_fail(gc != NULL); |
190 | |
191 if (accountReconnecting == NULL) | |
192 return; | |
193 | |
10020 | 194 account = gaim_connection_get_account(gc); |
195 | |
196 accountReconnecting = g_slist_remove(accountReconnecting, account); | |
197 } | |
198 | |
199 static void | |
6113 | 200 free_auto_recon(gpointer data) |
201 { | |
202 GaimAutoRecon *info = data; | |
203 | |
204 if (info->timeout != 0) | |
205 g_source_remove(info->timeout); | |
206 | |
207 g_free(info); | |
208 } | |
209 | |
8774 | 210 |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4590
diff
changeset
|
211 static gboolean |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4590
diff
changeset
|
212 plugin_load(GaimPlugin *plugin) |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4590
diff
changeset
|
213 { |
8774 | 214 |
215 /* this was the suggested way to override a single function of the | |
216 real ui ops. However, there's a mild concern of having more than one | |
217 bit of code making a new ui op call-through copy. If plugins A and B | |
218 both override the ui ops (in that order), B thinks that the | |
219 overridden ui ops A created was the original. If A unloads first, | |
220 and swaps out and frees its overridden version, then B is calling | |
221 through to a free'd ui op. There needs to be a way to "stack up" | |
222 overridden ui ops or something... I have a good idea of how to write | |
223 such a creature if someone wants it done. - siege 2004-04-20 */ | |
224 | |
225 /* get old ops, make a copy with a minor change */ | |
226 old_ops = gaim_connections_get_ui_ops(); | |
227 new_ops = (GaimConnectionUiOps *) g_memdup(old_ops, | |
228 sizeof(GaimConnectionUiOps)); | |
10020 | 229 new_ops->connect_progress = connect_progress; |
230 new_ops->connected = connected; | |
231 new_ops->disconnected = disconnected; | |
232 new_ops->notice = notice; | |
8774 | 233 new_ops->report_disconnect = report_disconnect; |
234 gaim_connections_set_ui_ops(new_ops); | |
235 | |
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
236 hash = g_hash_table_new_full(g_int_hash, g_int_equal, NULL, |
8774 | 237 free_auto_recon); |
10020 | 238 |
239 accountReconnecting = NULL; | |
3630 | 240 |
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
241 gaim_signal_connect(gaim_connections_get_handle(), "signed-off", |
8774 | 242 plugin, GAIM_CALLBACK(reconnect), NULL); |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4590
diff
changeset
|
243 |
10020 | 244 gaim_signal_connect(gaim_connections_get_handle(), "signed-on", |
245 plugin, GAIM_CALLBACK(reconnected), NULL); | |
246 | |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4590
diff
changeset
|
247 return TRUE; |
3802 | 248 } |
249 | |
8774 | 250 |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4590
diff
changeset
|
251 static gboolean |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4590
diff
changeset
|
252 plugin_unload(GaimPlugin *plugin) |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4590
diff
changeset
|
253 { |
8243 | 254 gaim_signal_disconnect(gaim_connections_get_handle(), "signed-off", |
255 plugin, GAIM_CALLBACK(reconnect)); | |
9546 | 256 |
10020 | 257 gaim_signal_disconnect(gaim_connections_get_handle(), "signed-on", |
258 plugin, GAIM_CALLBACK(reconnected)); | |
259 | |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4590
diff
changeset
|
260 g_hash_table_destroy(hash); |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4590
diff
changeset
|
261 hash = NULL; |
10020 | 262 |
263 if (accountReconnecting) { | |
264 g_slist_free(accountReconnecting); | |
265 accountReconnecting = NULL; | |
266 } | |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4590
diff
changeset
|
267 |
8774 | 268 gaim_connections_set_ui_ops(old_ops); |
269 g_free(new_ops); | |
270 old_ops = new_ops = NULL; | |
271 | |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4590
diff
changeset
|
272 return TRUE; |
3630 | 273 } |
274 | |
8774 | 275 |
276 static GaimPluginPrefFrame *get_plugin_pref_frame(GaimPlugin *plugin) { | |
277 GaimPluginPrefFrame *frame = gaim_plugin_pref_frame_new(); | |
278 GaimPluginPref *pref; | |
279 | |
280 pref = gaim_plugin_pref_new_with_label(_("Error Message Suppression")); | |
9549 | 281 gaim_plugin_pref_frame_add(frame, pref); |
8774 | 282 |
283 pref = gaim_plugin_pref_new_with_name_and_label(OPT_HIDE_CONNECTED, | |
284 _("Hide Disconnect Errors")); | |
285 gaim_plugin_pref_frame_add(frame, pref); | |
286 | |
287 pref = gaim_plugin_pref_new_with_name_and_label(OPT_HIDE_CONNECTING, | |
288 _("Hide Login Errors")); | |
289 gaim_plugin_pref_frame_add(frame, pref); | |
290 | |
10020 | 291 pref = gaim_plugin_pref_new_with_name_and_label(OPT_HIDE_RECONNECTING_DIALOG, |
292 _("Hide Reconnecting Dialog")); | |
293 gaim_plugin_pref_frame_add(frame, pref); | |
294 | |
8774 | 295 return frame; |
296 } | |
297 | |
298 | |
299 static GaimPluginUiInfo pref_info = { | |
300 get_plugin_pref_frame | |
301 }; | |
302 | |
303 | |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4590
diff
changeset
|
304 static GaimPluginInfo info = |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4590
diff
changeset
|
305 { |
9943 | 306 GAIM_PLUGIN_MAGIC, |
307 GAIM_MAJOR_VERSION, | |
308 GAIM_MINOR_VERSION, | |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4590
diff
changeset
|
309 GAIM_PLUGIN_STANDARD, /**< type */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4590
diff
changeset
|
310 NULL, /**< ui_requirement */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4590
diff
changeset
|
311 0, /**< flags */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4590
diff
changeset
|
312 NULL, /**< dependencies */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4590
diff
changeset
|
313 GAIM_PRIORITY_DEFAULT, /**< priority */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4590
diff
changeset
|
314 |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4590
diff
changeset
|
315 AUTORECON_PLUGIN_ID, /**< id */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4590
diff
changeset
|
316 N_("Auto-Reconnect"), /**< name */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4590
diff
changeset
|
317 VERSION, /**< version */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4590
diff
changeset
|
318 /** summary */ |
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
319 N_("When you are kicked offline, this reconnects you."), |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4590
diff
changeset
|
320 /** description */ |
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
321 N_("When you are kicked offline, this reconnects you."), |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4590
diff
changeset
|
322 "Eric Warmenhoven <eric@warmenhoven.org>", /**< author */ |
6485
70d5122bc3ff
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
323 GAIM_WEBSITE, /**< homepage */ |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4590
diff
changeset
|
324 |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4590
diff
changeset
|
325 plugin_load, /**< load */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4590
diff
changeset
|
326 plugin_unload, /**< unload */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4590
diff
changeset
|
327 NULL, /**< destroy */ |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4590
diff
changeset
|
328 |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4590
diff
changeset
|
329 NULL, /**< ui_info */ |
8774 | 330 NULL, /**< extra_info */ |
8993 | 331 &pref_info, /**< prefs_info */ |
332 NULL | |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4590
diff
changeset
|
333 }; |
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4590
diff
changeset
|
334 |
8774 | 335 |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4590
diff
changeset
|
336 static void |
5920
7d385de2f9cd
[gaim-migrate @ 6360]
Christian Hammond <chipx86@chipx86.com>
parents:
5873
diff
changeset
|
337 init_plugin(GaimPlugin *plugin) |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
4590
diff
changeset
|
338 { |
8774 | 339 gaim_prefs_add_none(AUTORECON_OPT); |
340 gaim_prefs_add_bool(OPT_HIDE_CONNECTED, FALSE); | |
341 gaim_prefs_add_bool(OPT_HIDE_CONNECTING, FALSE); | |
10020 | 342 gaim_prefs_add_bool(OPT_HIDE_RECONNECTING_DIALOG, FALSE); |
9971 | 343 gaim_prefs_remove(OPT_RESTORE_STATE); |
3630 | 344 } |
345 | |
6063 | 346 GAIM_INIT_PLUGIN(autorecon, init_plugin, info) |
8774 | 347 |