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