annotate plugins/autorecon.c @ 11851:3bfb2cffcef2

[gaim-migrate @ 14142] inspired by Richard Stellingwerff's patch 1339606, this workaround for annoying visible borders on tab close buttons is no longer required with at least gtk 2.6 (if someone can confirm if it was fixed in 2.4 we could remove it there too) committer: Tailor Script <tailor@pidgin.im>
author Stu Tomlinson <stu@nosnilmot.com>
date Thu, 27 Oct 2005 15:15:52 +0000
parents a32bf50ee5d1
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
11633
a32bf50ee5d1 [gaim-migrate @ 13909]
Mark Doliner <mark@kingant.net>
parents: 11256
diff changeset
1 /*
a32bf50ee5d1 [gaim-migrate @ 13909]
Mark Doliner <mark@kingant.net>
parents: 11256
diff changeset
2 * TODO: Are we getting rid of this, now that this functionality
a32bf50ee5d1 [gaim-migrate @ 13909]
Mark Doliner <mark@kingant.net>
parents: 11256
diff changeset
3 * is in the core? Can we get rid of those preferences? I
a32bf50ee5d1 [gaim-migrate @ 13909]
Mark Doliner <mark@kingant.net>
parents: 11256
diff changeset
4 * think we should be ok with always attempting to reconnect
a32bf50ee5d1 [gaim-migrate @ 13909]
Mark Doliner <mark@kingant.net>
parents: 11256
diff changeset
5 * and never showing disconnected/reconnected messages.
a32bf50ee5d1 [gaim-migrate @ 13909]
Mark Doliner <mark@kingant.net>
parents: 11256
diff changeset
6 * --KingAnt
a32bf50ee5d1 [gaim-migrate @ 13909]
Mark Doliner <mark@kingant.net>
parents: 11256
diff changeset
7 *
a32bf50ee5d1 [gaim-migrate @ 13909]
Mark Doliner <mark@kingant.net>
parents: 11256
diff changeset
8 * If we keep this file, we need to add the GPL header here.
a32bf50ee5d1 [gaim-migrate @ 13909]
Mark Doliner <mark@kingant.net>
parents: 11256
diff changeset
9 */
a32bf50ee5d1 [gaim-migrate @ 13909]
Mark Doliner <mark@kingant.net>
parents: 11256
diff changeset
10
5872
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5607
diff changeset
11 #include "internal.h"
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5607
diff changeset
12
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5607
diff changeset
13 #include "connection.h"
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5607
diff changeset
14 #include "debug.h"
8774
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
15 #include "pluginpref.h"
5872
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5607
diff changeset
16 #include "prpl.h"
6485
70d5122bc3ff [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
17 #include "signals.h"
9943
f8e395a054e2 [gaim-migrate @ 10835]
Nathan Walp <nwalp@pidgin.im>
parents: 9930
diff changeset
18 #include "version.h"
4202
59751fe608c5 [gaim-migrate @ 4438]
Christian Hammond <chipx86@chipx86.com>
parents: 4113
diff changeset
19
8774
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
20
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4590
diff changeset
21 #define AUTORECON_PLUGIN_ID "core-autorecon"
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4590
diff changeset
22
2216
66783ad29e55 [gaim-migrate @ 2226]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1818
diff changeset
23 #define INITIAL 8000
4590
3b8e6c2b4a50 [gaim-migrate @ 4874]
Luke Schierer <lschiere@pidgin.im>
parents: 4585
diff changeset
24 #define MAXTIME 2048000
2216
66783ad29e55 [gaim-migrate @ 2226]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1818
diff changeset
25
6113
30d4c432101c [gaim-migrate @ 6575]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
26 typedef struct {
30d4c432101c [gaim-migrate @ 6575]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
27 int delay;
30d4c432101c [gaim-migrate @ 6575]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
28 guint timeout;
30d4c432101c [gaim-migrate @ 6575]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
29 } GaimAutoRecon;
2216
66783ad29e55 [gaim-migrate @ 2226]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1818
diff changeset
30
6113
30d4c432101c [gaim-migrate @ 6575]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
31 static GHashTable *hash = NULL;
8774
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
32
10020
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
33 static GSList *accountReconnecting = NULL;
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
34
8774
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
35 #define AUTORECON_OPT "/plugins/core/autorecon"
10020
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
36 #define OPT_HIDE_CONNECTED AUTORECON_OPT "/hide_connected_error"
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
37 #define OPT_HIDE_CONNECTING AUTORECON_OPT "/hide_connecting_error"
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
38 #define OPT_RESTORE_STATE AUTORECON_OPT "/restore_state"
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
39 #define OPT_HIDE_RECONNECTING_DIALOG AUTORECON_OPT "/hide_reconnecting_dialog"
8774
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
40
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
41 /* storage of original (old_ops) and modified (new_ops) ui ops to allow us to
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
42 intercept calls to report_disconnect */
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
43 static GaimConnectionUiOps *old_ops = NULL;
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
44 static GaimConnectionUiOps *new_ops = NULL;
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
45
10748
8d19e10c187f [gaim-migrate @ 12350]
Mark Doliner <mark@kingant.net>
parents: 10738
diff changeset
46 static void
8d19e10c187f [gaim-migrate @ 12350]
Mark Doliner <mark@kingant.net>
parents: 10738
diff changeset
47 connect_progress(GaimConnection *gc, const char *text,
8d19e10c187f [gaim-migrate @ 12350]
Mark Doliner <mark@kingant.net>
parents: 10738
diff changeset
48 size_t step, size_t step_count)
8d19e10c187f [gaim-migrate @ 12350]
Mark Doliner <mark@kingant.net>
parents: 10738
diff changeset
49 {
8d19e10c187f [gaim-migrate @ 12350]
Mark Doliner <mark@kingant.net>
parents: 10738
diff changeset
50 if (old_ops == NULL || old_ops->connect_progress == NULL) {
10020
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
51 /* there's nothing to call through to, so don't bother
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
52 checking prefs */
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
53 return;
10748
8d19e10c187f [gaim-migrate @ 12350]
Mark Doliner <mark@kingant.net>
parents: 10738
diff changeset
54 } else if (gaim_prefs_get_bool(OPT_HIDE_RECONNECTING_DIALOG) && accountReconnecting &&
10020
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
55 g_slist_find(accountReconnecting, gc->account)) {
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
56 /* this is a reconnecting, and we're hiding those */
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
57 gaim_debug(GAIM_DEBUG_INFO, "autorecon",
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
58 "hide connecting dialog while reconnecting\n");
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
59 return;
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
60 }
10748
8d19e10c187f [gaim-migrate @ 12350]
Mark Doliner <mark@kingant.net>
parents: 10738
diff changeset
61
10020
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
62 old_ops->connect_progress(gc, text, step, step_count);
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
63 }
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
64
10748
8d19e10c187f [gaim-migrate @ 12350]
Mark Doliner <mark@kingant.net>
parents: 10738
diff changeset
65 static void
8d19e10c187f [gaim-migrate @ 12350]
Mark Doliner <mark@kingant.net>
parents: 10738
diff changeset
66 connected(GaimConnection *gc)
8d19e10c187f [gaim-migrate @ 12350]
Mark Doliner <mark@kingant.net>
parents: 10738
diff changeset
67 {
8d19e10c187f [gaim-migrate @ 12350]
Mark Doliner <mark@kingant.net>
parents: 10738
diff changeset
68 if (old_ops == NULL || old_ops->connected == NULL) {
10020
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
69 /* there's nothing to call through to, so don't bother
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
70 checking prefs */
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
71 return;
10748
8d19e10c187f [gaim-migrate @ 12350]
Mark Doliner <mark@kingant.net>
parents: 10738
diff changeset
72 } else if (gaim_prefs_get_bool(OPT_HIDE_RECONNECTING_DIALOG) && accountReconnecting &&
10020
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
73 g_slist_find(accountReconnecting, gc->account)) {
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
74 /* this is a reconnecting, and we're hiding those */
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
75 gaim_debug(GAIM_DEBUG_INFO, "autorecon",
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
76 "hide connecting dialog while reconnecting\n");
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
77 return;
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
78 }
10748
8d19e10c187f [gaim-migrate @ 12350]
Mark Doliner <mark@kingant.net>
parents: 10738
diff changeset
79
10020
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
80 old_ops->connected(gc);
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
81 }
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
82
10748
8d19e10c187f [gaim-migrate @ 12350]
Mark Doliner <mark@kingant.net>
parents: 10738
diff changeset
83 static void
8d19e10c187f [gaim-migrate @ 12350]
Mark Doliner <mark@kingant.net>
parents: 10738
diff changeset
84 disconnected(GaimConnection *gc)
8d19e10c187f [gaim-migrate @ 12350]
Mark Doliner <mark@kingant.net>
parents: 10738
diff changeset
85 {
8d19e10c187f [gaim-migrate @ 12350]
Mark Doliner <mark@kingant.net>
parents: 10738
diff changeset
86 if (old_ops == NULL || old_ops->disconnected == NULL) {
10020
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
87 /* there's nothing to call through to, so don't bother
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
88 checking prefs */
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
89 return;
10748
8d19e10c187f [gaim-migrate @ 12350]
Mark Doliner <mark@kingant.net>
parents: 10738
diff changeset
90 } else if (gaim_prefs_get_bool(OPT_HIDE_RECONNECTING_DIALOG) && accountReconnecting &&
10020
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
91 g_slist_find(accountReconnecting, gc->account)) {
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
92 /* this is a reconnecting, and we're hiding those */
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
93 gaim_debug(GAIM_DEBUG_INFO, "autorecon",
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
94 "hide connecting dialog while reconnecting\n");
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
95 return;
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
96 }
10748
8d19e10c187f [gaim-migrate @ 12350]
Mark Doliner <mark@kingant.net>
parents: 10738
diff changeset
97
10020
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
98 old_ops->disconnected(gc);
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
99 }
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
100
10748
8d19e10c187f [gaim-migrate @ 12350]
Mark Doliner <mark@kingant.net>
parents: 10738
diff changeset
101 static void
8d19e10c187f [gaim-migrate @ 12350]
Mark Doliner <mark@kingant.net>
parents: 10738
diff changeset
102 notice(GaimConnection *gc, const char *text)
8d19e10c187f [gaim-migrate @ 12350]
Mark Doliner <mark@kingant.net>
parents: 10738
diff changeset
103 {
8d19e10c187f [gaim-migrate @ 12350]
Mark Doliner <mark@kingant.net>
parents: 10738
diff changeset
104 if (old_ops == NULL || old_ops->notice == NULL) {
10020
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
105 /* there's nothing to call through to, so don't bother
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
106 checking prefs */
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
107 return;
10748
8d19e10c187f [gaim-migrate @ 12350]
Mark Doliner <mark@kingant.net>
parents: 10738
diff changeset
108 } else if (gaim_prefs_get_bool(OPT_HIDE_RECONNECTING_DIALOG) && accountReconnecting &&
10020
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
109 g_slist_find(accountReconnecting, gc->account)) {
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
110 /* this is a reconnecting, and we're hiding those */
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
111 gaim_debug(GAIM_DEBUG_INFO, "autorecon",
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
112 "hide connecting dialog while reconnecting\n");
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
113 }
10748
8d19e10c187f [gaim-migrate @ 12350]
Mark Doliner <mark@kingant.net>
parents: 10738
diff changeset
114
10020
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
115 old_ops->notice(gc, text);
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
116 }
8774
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
117
10748
8d19e10c187f [gaim-migrate @ 12350]
Mark Doliner <mark@kingant.net>
parents: 10738
diff changeset
118 static void
8d19e10c187f [gaim-migrate @ 12350]
Mark Doliner <mark@kingant.net>
parents: 10738
diff changeset
119 report_disconnect(GaimConnection *gc, const char *text)
8d19e10c187f [gaim-migrate @ 12350]
Mark Doliner <mark@kingant.net>
parents: 10738
diff changeset
120 {
8d19e10c187f [gaim-migrate @ 12350]
Mark Doliner <mark@kingant.net>
parents: 10738
diff changeset
121 if (old_ops == NULL || old_ops->report_disconnect == NULL) {
8774
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
122 /* there's nothing to call through to, so don't bother
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
123 checking prefs */
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
124 return;
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
125
10748
8d19e10c187f [gaim-migrate @ 12350]
Mark Doliner <mark@kingant.net>
parents: 10738
diff changeset
126 } else if (gc->state == GAIM_CONNECTED
8774
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
127 && gaim_prefs_get_bool(OPT_HIDE_CONNECTED)) {
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
128 /* this is a connected error, and we're hiding those */
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
129 gaim_debug(GAIM_DEBUG_INFO, "autorecon",
10345
2e01c503aa4f [gaim-migrate @ 11556]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10020
diff changeset
130 "hid disconnect error message (%s)\n", text);
8774
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
131 return;
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
132
10748
8d19e10c187f [gaim-migrate @ 12350]
Mark Doliner <mark@kingant.net>
parents: 10738
diff changeset
133 } else if (gc->state == GAIM_CONNECTING
8774
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
134 && gaim_prefs_get_bool(OPT_HIDE_CONNECTING)) {
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
135 /* this is a connecting error, and we're hiding those */
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
136 gaim_debug(GAIM_DEBUG_INFO, "autorecon",
10345
2e01c503aa4f [gaim-migrate @ 11556]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10020
diff changeset
137 "hid error message while connecting (%s)\n", text);
8774
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
138 return;
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
139 }
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
140
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
141 /* if we haven't returned by now, then let's pass to the real
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
142 function */
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
143 old_ops->report_disconnect(gc, text);
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
144 }
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
145
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
146
10748
8d19e10c187f [gaim-migrate @ 12350]
Mark Doliner <mark@kingant.net>
parents: 10738
diff changeset
147 static gboolean
8d19e10c187f [gaim-migrate @ 12350]
Mark Doliner <mark@kingant.net>
parents: 10738
diff changeset
148 do_signon(gpointer data)
8d19e10c187f [gaim-migrate @ 12350]
Mark Doliner <mark@kingant.net>
parents: 10738
diff changeset
149 {
5587
1c55b1540e18 [gaim-migrate @ 5991]
Christian Hammond <chipx86@chipx86.com>
parents: 5227
diff changeset
150 GaimAccount *account = data;
6113
30d4c432101c [gaim-migrate @ 6575]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
151 GaimAutoRecon *info;
30d4c432101c [gaim-migrate @ 6575]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
152
5227
6d1707dc8c3d [gaim-migrate @ 5597]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
153 gaim_debug(GAIM_DEBUG_INFO, "autorecon", "do_signon called\n");
6113
30d4c432101c [gaim-migrate @ 6575]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
154 g_return_val_if_fail(account != NULL, FALSE);
30d4c432101c [gaim-migrate @ 6575]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
155 info = g_hash_table_lookup(hash, account);
4494
b5a50a6a13b0 [gaim-migrate @ 4769]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 4491
diff changeset
156
5607
eeba9205dd0f [gaim-migrate @ 6011]
Nathan Walp <nwalp@pidgin.im>
parents: 5587
diff changeset
157 if (g_list_index(gaim_accounts_get_all(), account) < 0)
1817
b367beee6448 [gaim-migrate @ 1827]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1404
diff changeset
158 return FALSE;
6113
30d4c432101c [gaim-migrate @ 6575]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
159
10748
8d19e10c187f [gaim-migrate @ 12350]
Mark Doliner <mark@kingant.net>
parents: 10738
diff changeset
160 if (info)
7372
4ce6952d7908 [gaim-migrate @ 7967]
Nathan Walp <nwalp@pidgin.im>
parents: 7112
diff changeset
161 info->timeout = 0;
4ce6952d7908 [gaim-migrate @ 7967]
Nathan Walp <nwalp@pidgin.im>
parents: 7112
diff changeset
162
5587
1c55b1540e18 [gaim-migrate @ 5991]
Christian Hammond <chipx86@chipx86.com>
parents: 5227
diff changeset
163 gaim_debug(GAIM_DEBUG_INFO, "autorecon", "calling gaim_account_connect\n");
10738
55af3fa46329 [gaim-migrate @ 12340]
Mark Doliner <mark@kingant.net>
parents: 10574
diff changeset
164 gaim_account_connect(account);
5587
1c55b1540e18 [gaim-migrate @ 5991]
Christian Hammond <chipx86@chipx86.com>
parents: 5227
diff changeset
165 gaim_debug(GAIM_DEBUG_INFO, "autorecon", "done calling gaim_account_connect\n");
6113
30d4c432101c [gaim-migrate @ 6575]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
166
1817
b367beee6448 [gaim-migrate @ 1827]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1404
diff changeset
167 return FALSE;
1378
aedeb1218a0a [gaim-migrate @ 1388]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1165
diff changeset
168 }
aedeb1218a0a [gaim-migrate @ 1388]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1165
diff changeset
169
8774
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
170
10748
8d19e10c187f [gaim-migrate @ 12350]
Mark Doliner <mark@kingant.net>
parents: 10738
diff changeset
171 static void
8d19e10c187f [gaim-migrate @ 12350]
Mark Doliner <mark@kingant.net>
parents: 10738
diff changeset
172 reconnect(GaimConnection *gc, void *m)
8d19e10c187f [gaim-migrate @ 12350]
Mark Doliner <mark@kingant.net>
parents: 10738
diff changeset
173 {
6113
30d4c432101c [gaim-migrate @ 6575]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
174 GaimAccount *account;
30d4c432101c [gaim-migrate @ 6575]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
175 GaimAutoRecon *info;
10020
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
176 GSList* listAccount;
6113
30d4c432101c [gaim-migrate @ 6575]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
177
30d4c432101c [gaim-migrate @ 6575]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
178 g_return_if_fail(gc != NULL);
30d4c432101c [gaim-migrate @ 6575]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
179 account = gaim_connection_get_account(gc);
30d4c432101c [gaim-migrate @ 6575]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
180 info = g_hash_table_lookup(hash, account);
10020
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
181 if (accountReconnecting)
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
182 listAccount = g_slist_find(accountReconnecting, account);
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
183 else
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
184 listAccount = NULL;
6113
30d4c432101c [gaim-migrate @ 6575]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
185
2216
66783ad29e55 [gaim-migrate @ 2226]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1818
diff changeset
186 if (!gc->wants_to_die) {
6113
30d4c432101c [gaim-migrate @ 6575]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
187 if (info == NULL) {
30d4c432101c [gaim-migrate @ 6575]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
188 info = g_new0(GaimAutoRecon, 1);
30d4c432101c [gaim-migrate @ 6575]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
189 g_hash_table_insert(hash, account, info);
30d4c432101c [gaim-migrate @ 6575]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
190 info->delay = INITIAL;
8249
b51ed4506180 [gaim-migrate @ 8972]
Mark Doliner <mark@kingant.net>
parents: 8246
diff changeset
191 } else {
6113
30d4c432101c [gaim-migrate @ 6575]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
192 info->delay = MIN(2 * info->delay, MAXTIME);
8250
b248c1f4efbd [gaim-migrate @ 8973]
Mark Doliner <mark@kingant.net>
parents: 8249
diff changeset
193 if (info->timeout != 0)
b248c1f4efbd [gaim-migrate @ 8973]
Mark Doliner <mark@kingant.net>
parents: 8249
diff changeset
194 g_source_remove(info->timeout);
8249
b51ed4506180 [gaim-migrate @ 8972]
Mark Doliner <mark@kingant.net>
parents: 8246
diff changeset
195 }
6113
30d4c432101c [gaim-migrate @ 6575]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
196 info->timeout = g_timeout_add(info->delay, do_signon, account);
10748
8d19e10c187f [gaim-migrate @ 12350]
Mark Doliner <mark@kingant.net>
parents: 10738
diff changeset
197
10020
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
198 if (!listAccount)
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
199 accountReconnecting = g_slist_prepend(accountReconnecting, account);
6113
30d4c432101c [gaim-migrate @ 6575]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
200 } else if (info != NULL) {
30d4c432101c [gaim-migrate @ 6575]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
201 g_hash_table_remove(hash, account);
10748
8d19e10c187f [gaim-migrate @ 12350]
Mark Doliner <mark@kingant.net>
parents: 10738
diff changeset
202
10020
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
203 if (listAccount)
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
204 accountReconnecting = g_slist_delete_link(accountReconnecting, listAccount);
2216
66783ad29e55 [gaim-migrate @ 2226]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1818
diff changeset
205 }
9546
ebbe4390f75b [gaim-migrate @ 10375]
Luke Schierer <lschiere@pidgin.im>
parents: 8993
diff changeset
206 }
8774
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
207
6113
30d4c432101c [gaim-migrate @ 6575]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
208 static void
10748
8d19e10c187f [gaim-migrate @ 12350]
Mark Doliner <mark@kingant.net>
parents: 10738
diff changeset
209 reconnected(GaimConnection *gc, void *m)
8d19e10c187f [gaim-migrate @ 12350]
Mark Doliner <mark@kingant.net>
parents: 10738
diff changeset
210 {
10020
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
211 GaimAccount *account;
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
212
10574
77ef3f2f0df8 [gaim-migrate @ 11966]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10401
diff changeset
213 g_return_if_fail(gc != NULL);
77ef3f2f0df8 [gaim-migrate @ 11966]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10401
diff changeset
214
10942
77cb56ff14e1 [gaim-migrate @ 12733]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10757
diff changeset
215 account = gaim_connection_get_account(gc);
77cb56ff14e1 [gaim-migrate @ 12733]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10757
diff changeset
216
77cb56ff14e1 [gaim-migrate @ 12733]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10757
diff changeset
217 g_hash_table_remove(hash, account);
77cb56ff14e1 [gaim-migrate @ 12733]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10757
diff changeset
218
10574
77ef3f2f0df8 [gaim-migrate @ 11966]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10401
diff changeset
219 if (accountReconnecting == NULL)
77ef3f2f0df8 [gaim-migrate @ 11966]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10401
diff changeset
220 return;
77ef3f2f0df8 [gaim-migrate @ 11966]
Stu Tomlinson <stu@nosnilmot.com>
parents: 10401
diff changeset
221
10020
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
222 accountReconnecting = g_slist_remove(accountReconnecting, account);
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
223 }
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
224
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
225 static void
6113
30d4c432101c [gaim-migrate @ 6575]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
226 free_auto_recon(gpointer data)
30d4c432101c [gaim-migrate @ 6575]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
227 {
30d4c432101c [gaim-migrate @ 6575]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
228 GaimAutoRecon *info = data;
30d4c432101c [gaim-migrate @ 6575]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
229
30d4c432101c [gaim-migrate @ 6575]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
230 if (info->timeout != 0)
30d4c432101c [gaim-migrate @ 6575]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
231 g_source_remove(info->timeout);
30d4c432101c [gaim-migrate @ 6575]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
232
30d4c432101c [gaim-migrate @ 6575]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
233 g_free(info);
30d4c432101c [gaim-migrate @ 6575]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
234 }
30d4c432101c [gaim-migrate @ 6575]
Mark Doliner <mark@kingant.net>
parents: 6063
diff changeset
235
8774
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
236
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4590
diff changeset
237 static gboolean
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4590
diff changeset
238 plugin_load(GaimPlugin *plugin)
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4590
diff changeset
239 {
8774
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
240 /* this was the suggested way to override a single function of the
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
241 real ui ops. However, there's a mild concern of having more than one
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
242 bit of code making a new ui op call-through copy. If plugins A and B
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
243 both override the ui ops (in that order), B thinks that the
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
244 overridden ui ops A created was the original. If A unloads first,
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
245 and swaps out and frees its overridden version, then B is calling
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
246 through to a free'd ui op. There needs to be a way to "stack up"
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
247 overridden ui ops or something... I have a good idea of how to write
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
248 such a creature if someone wants it done. - siege 2004-04-20 */
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
249
10748
8d19e10c187f [gaim-migrate @ 12350]
Mark Doliner <mark@kingant.net>
parents: 10738
diff changeset
250 /* get old ops, make a copy with a minor change */
8774
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
251 old_ops = gaim_connections_get_ui_ops();
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
252 new_ops = (GaimConnectionUiOps *) g_memdup(old_ops,
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
253 sizeof(GaimConnectionUiOps));
10020
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
254 new_ops->connect_progress = connect_progress;
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
255 new_ops->connected = connected;
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
256 new_ops->disconnected = disconnected;
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
257 new_ops->notice = notice;
8774
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
258 new_ops->report_disconnect = report_disconnect;
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
259 gaim_connections_set_ui_ops(new_ops);
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
260
6485
70d5122bc3ff [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
261 hash = g_hash_table_new_full(g_int_hash, g_int_equal, NULL,
8774
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
262 free_auto_recon);
10748
8d19e10c187f [gaim-migrate @ 12350]
Mark Doliner <mark@kingant.net>
parents: 10738
diff changeset
263
10020
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
264 accountReconnecting = NULL;
3630
9682c0e022c6 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 2398
diff changeset
265
6485
70d5122bc3ff [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
266 gaim_signal_connect(gaim_connections_get_handle(), "signed-off",
8774
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
267 plugin, GAIM_CALLBACK(reconnect), NULL);
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4590
diff changeset
268
10020
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
269 gaim_signal_connect(gaim_connections_get_handle(), "signed-on",
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
270 plugin, GAIM_CALLBACK(reconnected), NULL);
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
271
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4590
diff changeset
272 return TRUE;
3802
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3630
diff changeset
273 }
9bcb42faccc0 [gaim-migrate @ 3945]
Sean Egan <seanegan@gmail.com>
parents: 3630
diff changeset
274
8774
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
275
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4590
diff changeset
276 static gboolean
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4590
diff changeset
277 plugin_unload(GaimPlugin *plugin)
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4590
diff changeset
278 {
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4590
diff changeset
279 g_hash_table_destroy(hash);
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4590
diff changeset
280 hash = NULL;
10748
8d19e10c187f [gaim-migrate @ 12350]
Mark Doliner <mark@kingant.net>
parents: 10738
diff changeset
281
10020
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
282 if (accountReconnecting) {
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
283 g_slist_free(accountReconnecting);
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
284 accountReconnecting = NULL;
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
285 }
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4590
diff changeset
286
8774
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
287 gaim_connections_set_ui_ops(old_ops);
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
288 g_free(new_ops);
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
289 old_ops = new_ops = NULL;
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
290
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4590
diff changeset
291 return TRUE;
3630
9682c0e022c6 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 2398
diff changeset
292 }
9682c0e022c6 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 2398
diff changeset
293
8774
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
294
10748
8d19e10c187f [gaim-migrate @ 12350]
Mark Doliner <mark@kingant.net>
parents: 10738
diff changeset
295 static
8d19e10c187f [gaim-migrate @ 12350]
Mark Doliner <mark@kingant.net>
parents: 10738
diff changeset
296 GaimPluginPrefFrame *get_plugin_pref_frame(GaimPlugin *plugin)
8d19e10c187f [gaim-migrate @ 12350]
Mark Doliner <mark@kingant.net>
parents: 10738
diff changeset
297 {
8774
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
298 GaimPluginPrefFrame *frame = gaim_plugin_pref_frame_new();
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
299 GaimPluginPref *pref;
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
300
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
301 pref = gaim_plugin_pref_new_with_label(_("Error Message Suppression"));
9549
d80ed3ba45a4 [gaim-migrate @ 10378]
Luke Schierer <lschiere@pidgin.im>
parents: 9546
diff changeset
302 gaim_plugin_pref_frame_add(frame, pref);
8774
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
303
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
304 pref = gaim_plugin_pref_new_with_name_and_label(OPT_HIDE_CONNECTED,
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
305 _("Hide Disconnect Errors"));
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
306 gaim_plugin_pref_frame_add(frame, pref);
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
307
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
308 pref = gaim_plugin_pref_new_with_name_and_label(OPT_HIDE_CONNECTING,
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
309 _("Hide Login Errors"));
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
310 gaim_plugin_pref_frame_add(frame, pref);
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
311
10020
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
312 pref = gaim_plugin_pref_new_with_name_and_label(OPT_HIDE_RECONNECTING_DIALOG,
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
313 _("Hide Reconnecting Dialog"));
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
314 gaim_plugin_pref_frame_add(frame, pref);
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
315
8774
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
316 return frame;
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
317 }
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
318
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
319
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
320 static GaimPluginUiInfo pref_info = {
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
321 get_plugin_pref_frame
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
322 };
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
323
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
324
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4590
diff changeset
325 static GaimPluginInfo info =
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4590
diff changeset
326 {
9943
f8e395a054e2 [gaim-migrate @ 10835]
Nathan Walp <nwalp@pidgin.im>
parents: 9930
diff changeset
327 GAIM_PLUGIN_MAGIC,
f8e395a054e2 [gaim-migrate @ 10835]
Nathan Walp <nwalp@pidgin.im>
parents: 9930
diff changeset
328 GAIM_MAJOR_VERSION,
f8e395a054e2 [gaim-migrate @ 10835]
Nathan Walp <nwalp@pidgin.im>
parents: 9930
diff changeset
329 GAIM_MINOR_VERSION,
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4590
diff changeset
330 GAIM_PLUGIN_STANDARD, /**< type */
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4590
diff changeset
331 NULL, /**< ui_requirement */
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4590
diff changeset
332 0, /**< flags */
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4590
diff changeset
333 NULL, /**< dependencies */
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4590
diff changeset
334 GAIM_PRIORITY_DEFAULT, /**< priority */
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4590
diff changeset
335
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4590
diff changeset
336 AUTORECON_PLUGIN_ID, /**< id */
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4590
diff changeset
337 N_("Auto-Reconnect"), /**< name */
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4590
diff changeset
338 VERSION, /**< version */
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4590
diff changeset
339 /** summary */
6485
70d5122bc3ff [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
340 N_("When you are kicked offline, this reconnects you."),
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4590
diff changeset
341 /** description */
6485
70d5122bc3ff [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
342 N_("When you are kicked offline, this reconnects you."),
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4590
diff changeset
343 "Eric Warmenhoven <eric@warmenhoven.org>", /**< author */
6485
70d5122bc3ff [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 6371
diff changeset
344 GAIM_WEBSITE, /**< homepage */
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4590
diff changeset
345
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4590
diff changeset
346 plugin_load, /**< load */
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4590
diff changeset
347 plugin_unload, /**< unload */
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4590
diff changeset
348 NULL, /**< destroy */
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4590
diff changeset
349
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4590
diff changeset
350 NULL, /**< ui_info */
8774
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
351 NULL, /**< extra_info */
8993
294ae6548d4e [gaim-migrate @ 9768]
Luke Schierer <lschiere@pidgin.im>
parents: 8774
diff changeset
352 &pref_info, /**< prefs_info */
294ae6548d4e [gaim-migrate @ 9768]
Luke Schierer <lschiere@pidgin.im>
parents: 8774
diff changeset
353 NULL
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4590
diff changeset
354 };
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4590
diff changeset
355
8774
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
356
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4590
diff changeset
357 static void
5920
7d385de2f9cd [gaim-migrate @ 6360]
Christian Hammond <chipx86@chipx86.com>
parents: 5873
diff changeset
358 init_plugin(GaimPlugin *plugin)
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 4590
diff changeset
359 {
8774
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
360 gaim_prefs_add_none(AUTORECON_OPT);
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
361 gaim_prefs_add_bool(OPT_HIDE_CONNECTED, FALSE);
5205743477bb [gaim-migrate @ 9536]
Luke Schierer <lschiere@pidgin.im>
parents: 8749
diff changeset
362 gaim_prefs_add_bool(OPT_HIDE_CONNECTING, FALSE);
10020
c06c4a697b31 [gaim-migrate @ 10944]
Luke Schierer <lschiere@pidgin.im>
parents: 9971
diff changeset
363 gaim_prefs_add_bool(OPT_HIDE_RECONNECTING_DIALOG, FALSE);
9971
ab5db2c5da79 [gaim-migrate @ 10882]
Mark Doliner <mark@kingant.net>
parents: 9961
diff changeset
364 gaim_prefs_remove(OPT_RESTORE_STATE);
3630
9682c0e022c6 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 2398
diff changeset
365 }
9682c0e022c6 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 2398
diff changeset
366
6063
5239a3b4ab33 [gaim-migrate @ 6513]
Nathan Walp <nwalp@pidgin.im>
parents: 5920
diff changeset
367 GAIM_INIT_PLUGIN(autorecon, init_plugin, info)