plugins/autorecon.c

Sun, 05 Jan 2003 23:21:50 +0000

author
Nathan Walp <nwalp@pidgin.im>
date
Sun, 05 Jan 2003 23:21:50 +0000
changeset 4208
e70428fed92c
parent 4202
8b92de3b1c07
child 4491
715515ab95da
permissions
-rw-r--r--

[gaim-migrate @ 4445]
(18:14:14) faceprint: http://faceprint.com/code/gaim/fix-tabs.20030105.1729.diff <-- fixes the tabs + incoming IM focus problem, and gives the
right-click menu for the tabs meaningful names

committer: Luke Schierer <lschiere@pidgin.im>

4202
8b92de3b1c07 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 4113
diff changeset
1 #include "config.h"
8b92de3b1c07 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 4113
diff changeset
2
8b92de3b1c07 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 4113
diff changeset
3 #ifndef GAIM_PLUGINS
99
eed3f8358586 [gaim-migrate @ 109]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
4 #define GAIM_PLUGINS
4202
8b92de3b1c07 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 4113
diff changeset
5 #endif
8b92de3b1c07 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 4113
diff changeset
6
99
eed3f8358586 [gaim-migrate @ 109]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
7 #include "gaim.h"
1404
e915b372f70a [gaim-migrate @ 1414]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1378
diff changeset
8 #include "prpl.h"
2216
ae70f10e0d27 [gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1818
diff changeset
9
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 2398
diff changeset
10 #ifdef _WIN32
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 2398
diff changeset
11 #include "win32dep.h"
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 2398
diff changeset
12 #endif
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 2398
diff changeset
13
2216
ae70f10e0d27 [gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1818
diff changeset
14 #define INITIAL 8000
ae70f10e0d27 [gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1818
diff changeset
15 #define MAXTIME 1024000
ae70f10e0d27 [gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1818
diff changeset
16
ae70f10e0d27 [gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1818
diff changeset
17 static GHashTable *hash = NULL;
ae70f10e0d27 [gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1818
diff changeset
18
ae70f10e0d27 [gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1818
diff changeset
19 static guint tim = 0;
99
eed3f8358586 [gaim-migrate @ 109]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
20
2216
ae70f10e0d27 [gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1818
diff changeset
21 static gboolean do_signon(gpointer data) {
ae70f10e0d27 [gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1818
diff changeset
22 struct aim_user *u = data;
2398
abb1bcee4fdd [gaim-migrate @ 2411]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2217
diff changeset
23 if (g_slist_index(aim_users, u) < 0)
1817
67ad2e2348a2 [gaim-migrate @ 1827]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1404
diff changeset
24 return FALSE;
1378
49578635eddb [gaim-migrate @ 1388]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1165
diff changeset
25 serv_login(u);
2216
ae70f10e0d27 [gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1818
diff changeset
26 tim = 0;
1817
67ad2e2348a2 [gaim-migrate @ 1827]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1404
diff changeset
27 return FALSE;
1378
49578635eddb [gaim-migrate @ 1388]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1165
diff changeset
28 }
49578635eddb [gaim-migrate @ 1388]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1165
diff changeset
29
49578635eddb [gaim-migrate @ 1388]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1165
diff changeset
30 static void reconnect(struct gaim_connection *gc, void *m) {
2216
ae70f10e0d27 [gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1818
diff changeset
31 if (!gc->wants_to_die) {
ae70f10e0d27 [gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1818
diff changeset
32 int del;
ae70f10e0d27 [gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1818
diff changeset
33 del = (int)g_hash_table_lookup(hash, gc->user);
ae70f10e0d27 [gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1818
diff changeset
34 if (!del)
ae70f10e0d27 [gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1818
diff changeset
35 del = INITIAL;
ae70f10e0d27 [gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1818
diff changeset
36 else
2217
791f4d3b3565 [gaim-migrate @ 2227]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2216
diff changeset
37 del = MAX(2 * del, MAXTIME);
2216
ae70f10e0d27 [gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1818
diff changeset
38 tim = g_timeout_add(del, do_signon, gc->user);
ae70f10e0d27 [gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1818
diff changeset
39 g_hash_table_insert(hash, gc->user, (gpointer)del);
ae70f10e0d27 [gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1818
diff changeset
40 } else {
ae70f10e0d27 [gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1818
diff changeset
41 g_hash_table_remove(hash, gc->user);
ae70f10e0d27 [gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1818
diff changeset
42 }
99
eed3f8358586 [gaim-migrate @ 109]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
43 }
eed3f8358586 [gaim-migrate @ 109]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
44
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 2398
diff changeset
45 /*
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 2398
diff changeset
46 * EXPORTED FUNCTIONS
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 2398
diff changeset
47 */
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 2398
diff changeset
48
3802
27af7e21b143 [gaim-migrate @ 3945]
Sean Egan <seanegan@pidgin.im>
parents: 3630
diff changeset
49 struct gaim_plugin_description desc;
27af7e21b143 [gaim-migrate @ 3945]
Sean Egan <seanegan@pidgin.im>
parents: 3630
diff changeset
50 G_MODULE_EXPORT struct gaim_plugin_description *gaim_plugin_desc() {
27af7e21b143 [gaim-migrate @ 3945]
Sean Egan <seanegan@pidgin.im>
parents: 3630
diff changeset
51 desc.api_version = PLUGIN_API_VERSION;
27af7e21b143 [gaim-migrate @ 3945]
Sean Egan <seanegan@pidgin.im>
parents: 3630
diff changeset
52 desc.name = g_strdup("Autoreconnect");
27af7e21b143 [gaim-migrate @ 3945]
Sean Egan <seanegan@pidgin.im>
parents: 3630
diff changeset
53 desc.version = g_strdup(VERSION);
4113
e86a6c65c2b7 [gaim-migrate @ 4329]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 3802
diff changeset
54 desc.description = g_strdup(_("When you are kicked offline, this reconnects you."));
3802
27af7e21b143 [gaim-migrate @ 3945]
Sean Egan <seanegan@pidgin.im>
parents: 3630
diff changeset
55 desc.authors = g_strdup("Eric Warmenhoven &lt;eric@warmenhoven.org>");
27af7e21b143 [gaim-migrate @ 3945]
Sean Egan <seanegan@pidgin.im>
parents: 3630
diff changeset
56 desc.url = g_strdup(WEBSITE);
27af7e21b143 [gaim-migrate @ 3945]
Sean Egan <seanegan@pidgin.im>
parents: 3630
diff changeset
57 return &desc;
27af7e21b143 [gaim-migrate @ 3945]
Sean Egan <seanegan@pidgin.im>
parents: 3630
diff changeset
58 }
27af7e21b143 [gaim-migrate @ 3945]
Sean Egan <seanegan@pidgin.im>
parents: 3630
diff changeset
59
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 2398
diff changeset
60 G_MODULE_EXPORT char *name() {
4113
e86a6c65c2b7 [gaim-migrate @ 4329]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 3802
diff changeset
61 return _("Auto Reconnect");
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 2398
diff changeset
62 }
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 2398
diff changeset
63
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 2398
diff changeset
64 G_MODULE_EXPORT char *description() {
4113
e86a6c65c2b7 [gaim-migrate @ 4329]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents: 3802
diff changeset
65 return _("When you are kicked offline, this reconnects you.");
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 2398
diff changeset
66 }
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 2398
diff changeset
67
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 2398
diff changeset
68 G_MODULE_EXPORT char *gaim_plugin_init(GModule *handle) {
2216
ae70f10e0d27 [gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1818
diff changeset
69 hash = g_hash_table_new(g_int_hash, g_int_equal);
ae70f10e0d27 [gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1818
diff changeset
70
99
eed3f8358586 [gaim-migrate @ 109]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
71 gaim_signal_connect(handle, event_signoff, reconnect, NULL);
1047
783f8520d9a0 [gaim-migrate @ 1057]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1030
diff changeset
72
783f8520d9a0 [gaim-migrate @ 1057]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1030
diff changeset
73 return NULL;
99
eed3f8358586 [gaim-migrate @ 109]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
74 }
2216
ae70f10e0d27 [gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1818
diff changeset
75
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 2398
diff changeset
76 G_MODULE_EXPORT void gaim_plugin_remove() {
2216
ae70f10e0d27 [gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1818
diff changeset
77 if (tim)
ae70f10e0d27 [gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1818
diff changeset
78 g_source_remove(tim);
ae70f10e0d27 [gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1818
diff changeset
79 g_hash_table_destroy(hash);
ae70f10e0d27 [gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1818
diff changeset
80 hash = NULL;
ae70f10e0d27 [gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1818
diff changeset
81 tim = 0;
ae70f10e0d27 [gaim-migrate @ 2226]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1818
diff changeset
82 }

mercurial