libpurple/accounts.c

Sun, 09 Oct 2022 02:20:18 -0500

author
Elliott Sales de Andrade <quantum.analyst@gmail.com>
date
Sun, 09 Oct 2022 02:20:18 -0500
changeset 41798
5ae15cfc1bee
parent 41773
c4acd02fdf73
child 41830
5bc664b848a5
permissions
-rw-r--r--

Remove unused account signals

Testing Done:
Compiled

Reviewed at https://reviews.imfreedom.org/r/1914/

34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1 /* purple
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
2 *
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
3 * Purple is the legal property of its developers, whose names are too numerous
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
4 * to list here. Please refer to the COPYRIGHT file distributed with this
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
5 * source distribution.
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
6 *
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
7 * This program is free software; you can redistribute it and/or modify
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
8 * it under the terms of the GNU General Public License as published by
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
9 * the Free Software Foundation; either version 2 of the License, or
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
10 * (at your option) any later version.
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
11 *
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
12 * This program is distributed in the hope that it will be useful,
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
15 * GNU General Public License for more details.
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
16 *
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
17 * You should have received a copy of the GNU General Public License
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
18 * along with this program; if not, write to the Free Software
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
20 */
40441
f23c7e772667 Make sure we're not including the gettext macros in header files and deal with the repercussions of that.
Gary Kramlich <grim@reaperworld.com>
parents: 40439
diff changeset
21
f23c7e772667 Make sure we're not including the gettext macros in header files and deal with the repercussions of that.
Gary Kramlich <grim@reaperworld.com>
parents: 40439
diff changeset
22 #include <glib/gi18n-lib.h>
f23c7e772667 Make sure we're not including the gettext macros in header files and deal with the repercussions of that.
Gary Kramlich <grim@reaperworld.com>
parents: 40439
diff changeset
23
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
24 #include "accounts.h"
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
25 #include "core.h"
34581
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
26 #include "debug.h"
34582
67a520874aa9 Exposed some functions to the header files to resolve dependencies.
Ankit Vani <a@nevitus.org>
parents: 34581
diff changeset
27 #include "network.h"
41181
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
28 #include "purpleaccountmanager.h"
40992
3a973a9c5a64 migrate libpurple to the ConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40863
diff changeset
29 #include "purpleconversationmanager.h"
40680
f9ea6d5e8992 Use PurpleCredentialManager instead of the old keyring api.
Gary Kramlich <grim@reaperworld.com>
parents: 40570
diff changeset
30 #include "purplecredentialmanager.h"
41007
90d2dee9b3dc Fix the includes for the purpleenums rename
Gary Kramlich <grim@reaperworld.com>
parents: 40992
diff changeset
31 #include "purpleenums.h"
40439
e9838d634d5e Make sure that internal.h can only be included by libpurple and split out some pieces to purpleprivate.h
Gary Kramlich <grim@reaperworld.com>
parents: 40332
diff changeset
32 #include "purpleprivate.h"
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
33
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
34 static PurpleAccountUiOps *account_ui_ops = NULL;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
35
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
36 static guint save_timer = 0;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
37 static gboolean accounts_loaded = FALSE;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
38
40505
e2c4be9e3aa6 fix some issues that were identified while working on a flatpak build
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
39 static void
e2c4be9e3aa6 fix some issues that were identified while working on a flatpak build
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
40 purple_accounts_network_changed_cb(GNetworkMonitor *m, gboolean available,
e2c4be9e3aa6 fix some issues that were identified while working on a flatpak build
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
41 gpointer data)
e2c4be9e3aa6 fix some issues that were identified while working on a flatpak build
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
42 {
e2c4be9e3aa6 fix some issues that were identified while working on a flatpak build
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
43 if(available) {
e2c4be9e3aa6 fix some issues that were identified while working on a flatpak build
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
44 purple_accounts_restore_current_statuses();
e2c4be9e3aa6 fix some issues that were identified while working on a flatpak build
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
45 }
e2c4be9e3aa6 fix some issues that were identified while working on a flatpak build
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
46 }
e2c4be9e3aa6 fix some issues that were identified while working on a flatpak build
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
47
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
48 /*********************************************************************
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
49 * Writing to disk *
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
50 *********************************************************************/
41181
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
51 static void
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
52 accounts_to_xmlnode_helper(PurpleAccount *account, gpointer data) {
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
53 PurpleXmlNode *node = data, *child = NULL;
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
54
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
55 child = _purple_account_to_xmlnode(account);
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
56 purple_xmlnode_insert_child(node, child);
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
57 }
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
58
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
59 static PurpleXmlNode *
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
60 accounts_to_xmlnode(void)
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
61 {
41181
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
62 PurpleAccountManager *manager = purple_account_manager_get_default();
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
63 PurpleXmlNode *node = NULL;
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
64
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
65 node = purple_xmlnode_new("account");
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
66 purple_xmlnode_set_attrib(node, "version", "1.0");
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
67
41181
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
68 purple_account_manager_foreach(manager, accounts_to_xmlnode_helper, node);
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
69
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
70 return node;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
71 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
72
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
73 static void
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
74 sync_accounts(void)
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
75 {
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
76 PurpleXmlNode *node;
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
77 char *data;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
78
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
79 if (!accounts_loaded)
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
80 {
35176
b0659f31989d Update debug categories for new filenames
Ankit Vani <a@nevitus.org>
parents: 35091
diff changeset
81 purple_debug_error("accounts", "Attempted to save accounts before "
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
82 "they were read!\n");
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
83 return;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
84 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
85
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
86 node = accounts_to_xmlnode();
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
87 data = purple_xmlnode_to_formatted_str(node, NULL);
39438
e85334959b23 Move more libpurple files to ~/.config.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39352
diff changeset
88 purple_util_write_data_to_config_file("accounts.xml", data, -1);
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
89 g_free(data);
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
90 purple_xmlnode_free(node);
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
91 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
92
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
93 static gboolean
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
94 save_cb(gpointer data)
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
95 {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
96 sync_accounts();
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
97 save_timer = 0;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
98 return FALSE;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
99 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
100
34582
67a520874aa9 Exposed some functions to the header files to resolve dependencies.
Ankit Vani <a@nevitus.org>
parents: 34581
diff changeset
101 void
67a520874aa9 Exposed some functions to the header files to resolve dependencies.
Ankit Vani <a@nevitus.org>
parents: 34581
diff changeset
102 purple_accounts_schedule_save(void)
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
103 {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
104 if (save_timer == 0)
38433
361c801c4536 Remove purple_timeout_* function usage
Mike Ruprecht <cmaiku@gmail.com>
parents: 37679
diff changeset
105 save_timer = g_timeout_add_seconds(5, save_cb, NULL);
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
106 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
107
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
108 static void
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
109 migrate_xmpp_encryption(PurpleAccount *account)
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
110 {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
111 /* When this is removed, nuke the "old_ssl" and "require_tls" settings */
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
112 if (g_str_equal(purple_account_get_protocol_id(account), "prpl-jabber")) {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
113 const char *sec = purple_account_get_string(account, "connection_security", "");
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
114
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
115 if (g_str_equal("", sec)) {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
116 const char *val = "require_tls";
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
117 if (purple_account_get_bool(account, "old_ssl", FALSE))
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
118 val = "old_ssl";
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
119 else if (!purple_account_get_bool(account, "require_tls", TRUE))
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
120 val = "opportunistic_tls";
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
121
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
122 purple_account_set_string(account, "connection_security", val);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
123 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
124 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
125 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
126
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
127 static void
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
128 parse_settings(PurpleXmlNode *node, PurpleAccount *account)
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
129 {
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
130 PurpleXmlNode *child;
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
131
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
132 /* Read settings, one by one */
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
133 for (child = purple_xmlnode_get_child(node, "setting"); child != NULL;
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
134 child = purple_xmlnode_get_next_twin(child))
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
135 {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
136 const char *name, *str_type;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
137 PurplePrefType type;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
138 char *data;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
139
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
140 name = purple_xmlnode_get_attrib(child, "name");
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
141 if (name == NULL)
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
142 /* Ignore this setting */
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
143 continue;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
144
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
145 str_type = purple_xmlnode_get_attrib(child, "type");
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
146 if (str_type == NULL)
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
147 /* Ignore this setting */
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
148 continue;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
149
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
150 if (purple_strequal(str_type, "string"))
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
151 type = PURPLE_PREF_STRING;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
152 else if (purple_strequal(str_type, "int"))
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
153 type = PURPLE_PREF_INT;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
154 else if (purple_strequal(str_type, "bool"))
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
155 type = PURPLE_PREF_BOOLEAN;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
156 else
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
157 /* Ignore this setting */
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
158 continue;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
159
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
160 data = purple_xmlnode_get_data(child);
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
161 if (data == NULL)
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
162 /* Ignore this setting */
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
163 continue;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
164
41393
f4faf0d6ab26 Remove the account ui settings as it was only used for whether or not an account was enabled
Gary Kramlich <grim@reaperworld.com>
parents: 41392
diff changeset
165 if (type == PURPLE_PREF_STRING)
f4faf0d6ab26 Remove the account ui settings as it was only used for whether or not an account was enabled
Gary Kramlich <grim@reaperworld.com>
parents: 41392
diff changeset
166 purple_account_set_string(account, name, data);
f4faf0d6ab26 Remove the account ui settings as it was only used for whether or not an account was enabled
Gary Kramlich <grim@reaperworld.com>
parents: 41392
diff changeset
167 else if (type == PURPLE_PREF_INT)
f4faf0d6ab26 Remove the account ui settings as it was only used for whether or not an account was enabled
Gary Kramlich <grim@reaperworld.com>
parents: 41392
diff changeset
168 purple_account_set_int(account, name, atoi(data));
f4faf0d6ab26 Remove the account ui settings as it was only used for whether or not an account was enabled
Gary Kramlich <grim@reaperworld.com>
parents: 41392
diff changeset
169 else if (type == PURPLE_PREF_BOOLEAN)
f4faf0d6ab26 Remove the account ui settings as it was only used for whether or not an account was enabled
Gary Kramlich <grim@reaperworld.com>
parents: 41392
diff changeset
170 purple_account_set_bool(account, name,
f4faf0d6ab26 Remove the account ui settings as it was only used for whether or not an account was enabled
Gary Kramlich <grim@reaperworld.com>
parents: 41392
diff changeset
171 (*data == '0' ? FALSE : TRUE));
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
172
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
173 g_free(data);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
174 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
175
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
176 /* we do this here because we need to do it before the user views the
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
177 * Edit Account dialog. */
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
178 migrate_xmpp_encryption(account);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
179 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
180
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
181 static void
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
182 parse_proxy_info(PurpleXmlNode *node, PurpleAccount *account)
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
183 {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
184 PurpleProxyInfo *proxy_info;
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
185 PurpleXmlNode *child;
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
186 char *data;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
187
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
188 proxy_info = purple_proxy_info_new();
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
189
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
190 /* Use the global proxy settings, by default */
41318
56092ffeae95 Move PurpleProxyInfo from a boxed type to a GObject
Gary Kramlich <grim@reaperworld.com>
parents: 41314
diff changeset
191 purple_proxy_info_set_proxy_type(proxy_info, PURPLE_PROXY_TYPE_USE_GLOBAL);
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
192
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
193 /* Read proxy type */
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
194 child = purple_xmlnode_get_child(node, "type");
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
195 if ((child != NULL) && ((data = purple_xmlnode_get_data(child)) != NULL))
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
196 {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
197 if (purple_strequal(data, "global"))
41318
56092ffeae95 Move PurpleProxyInfo from a boxed type to a GObject
Gary Kramlich <grim@reaperworld.com>
parents: 41314
diff changeset
198 purple_proxy_info_set_proxy_type(proxy_info, PURPLE_PROXY_TYPE_USE_GLOBAL);
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
199 else if (purple_strequal(data, "none"))
41318
56092ffeae95 Move PurpleProxyInfo from a boxed type to a GObject
Gary Kramlich <grim@reaperworld.com>
parents: 41314
diff changeset
200 purple_proxy_info_set_proxy_type(proxy_info, PURPLE_PROXY_TYPE_NONE);
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
201 else if (purple_strequal(data, "http"))
41318
56092ffeae95 Move PurpleProxyInfo from a boxed type to a GObject
Gary Kramlich <grim@reaperworld.com>
parents: 41314
diff changeset
202 purple_proxy_info_set_proxy_type(proxy_info, PURPLE_PROXY_TYPE_HTTP);
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
203 else if (purple_strequal(data, "socks4"))
41318
56092ffeae95 Move PurpleProxyInfo from a boxed type to a GObject
Gary Kramlich <grim@reaperworld.com>
parents: 41314
diff changeset
204 purple_proxy_info_set_proxy_type(proxy_info, PURPLE_PROXY_TYPE_SOCKS4);
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
205 else if (purple_strequal(data, "socks5"))
41318
56092ffeae95 Move PurpleProxyInfo from a boxed type to a GObject
Gary Kramlich <grim@reaperworld.com>
parents: 41314
diff changeset
206 purple_proxy_info_set_proxy_type(proxy_info, PURPLE_PROXY_TYPE_SOCKS5);
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
207 else if (purple_strequal(data, "tor"))
41318
56092ffeae95 Move PurpleProxyInfo from a boxed type to a GObject
Gary Kramlich <grim@reaperworld.com>
parents: 41314
diff changeset
208 purple_proxy_info_set_proxy_type(proxy_info, PURPLE_PROXY_TYPE_TOR);
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
209 else if (purple_strequal(data, "envvar"))
41318
56092ffeae95 Move PurpleProxyInfo from a boxed type to a GObject
Gary Kramlich <grim@reaperworld.com>
parents: 41314
diff changeset
210 purple_proxy_info_set_proxy_type(proxy_info, PURPLE_PROXY_TYPE_USE_ENVVAR);
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
211 else
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
212 {
35176
b0659f31989d Update debug categories for new filenames
Ankit Vani <a@nevitus.org>
parents: 35091
diff changeset
213 purple_debug_error("accounts", "Invalid proxy type found when "
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
214 "loading account information for %s\n",
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
215 purple_account_get_username(account));
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
216 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
217 g_free(data);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
218 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
219
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
220 /* Read proxy host */
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
221 child = purple_xmlnode_get_child(node, "host");
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
222 if ((child != NULL) && ((data = purple_xmlnode_get_data(child)) != NULL))
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
223 {
41318
56092ffeae95 Move PurpleProxyInfo from a boxed type to a GObject
Gary Kramlich <grim@reaperworld.com>
parents: 41314
diff changeset
224 purple_proxy_info_set_hostname(proxy_info, data);
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
225 g_free(data);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
226 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
227
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
228 /* Read proxy port */
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
229 child = purple_xmlnode_get_child(node, "port");
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
230 if ((child != NULL) && ((data = purple_xmlnode_get_data(child)) != NULL))
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
231 {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
232 purple_proxy_info_set_port(proxy_info, atoi(data));
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
233 g_free(data);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
234 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
235
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
236 /* Read proxy username */
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
237 child = purple_xmlnode_get_child(node, "username");
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
238 if ((child != NULL) && ((data = purple_xmlnode_get_data(child)) != NULL))
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
239 {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
240 purple_proxy_info_set_username(proxy_info, data);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
241 g_free(data);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
242 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
243
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
244 /* Read proxy password */
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
245 child = purple_xmlnode_get_child(node, "password");
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
246 if ((child != NULL) && ((data = purple_xmlnode_get_data(child)) != NULL))
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
247 {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
248 purple_proxy_info_set_password(proxy_info, data);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
249 g_free(data);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
250 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
251
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
252 /* If there are no values set then proxy_info NULL */
41318
56092ffeae95 Move PurpleProxyInfo from a boxed type to a GObject
Gary Kramlich <grim@reaperworld.com>
parents: 41314
diff changeset
253 if ((purple_proxy_info_get_proxy_type(proxy_info) == PURPLE_PROXY_TYPE_USE_GLOBAL) &&
56092ffeae95 Move PurpleProxyInfo from a boxed type to a GObject
Gary Kramlich <grim@reaperworld.com>
parents: 41314
diff changeset
254 (purple_proxy_info_get_hostname(proxy_info) == NULL) &&
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
255 (purple_proxy_info_get_port(proxy_info) == 0) &&
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
256 (purple_proxy_info_get_username(proxy_info) == NULL) &&
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
257 (purple_proxy_info_get_password(proxy_info) == NULL))
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
258 {
41318
56092ffeae95 Move PurpleProxyInfo from a boxed type to a GObject
Gary Kramlich <grim@reaperworld.com>
parents: 41314
diff changeset
259 g_clear_object(&proxy_info);
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
260 return;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
261 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
262
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
263 purple_account_set_proxy_info(account, proxy_info);
41318
56092ffeae95 Move PurpleProxyInfo from a boxed type to a GObject
Gary Kramlich <grim@reaperworld.com>
parents: 41314
diff changeset
264
56092ffeae95 Move PurpleProxyInfo from a boxed type to a GObject
Gary Kramlich <grim@reaperworld.com>
parents: 41314
diff changeset
265 g_clear_object(&proxy_info);
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
266 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
267
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
268 static void
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
269 parse_current_error(PurpleXmlNode *node, PurpleAccount *account)
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
270 {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
271 guint type;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
272 char *type_str = NULL, *description = NULL;
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
273 PurpleXmlNode *child;
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
274 PurpleConnectionErrorInfo *current_error = NULL;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
275
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
276 child = purple_xmlnode_get_child(node, "type");
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
277 if (child == NULL || (type_str = purple_xmlnode_get_data(child)) == NULL)
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
278 return;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
279 type = atoi(type_str);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
280 g_free(type_str);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
281
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
282 if (type > PURPLE_CONNECTION_ERROR_OTHER_ERROR)
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
283 {
35176
b0659f31989d Update debug categories for new filenames
Ankit Vani <a@nevitus.org>
parents: 35091
diff changeset
284 purple_debug_error("accounts",
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
285 "Invalid PurpleConnectionError value %d found when "
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
286 "loading account information for %s\n",
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
287 type, purple_account_get_username(account));
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
288 type = PURPLE_CONNECTION_ERROR_OTHER_ERROR;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
289 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
290
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
291 child = purple_xmlnode_get_child(node, "description");
41717
ce790d508898 Minor cleanup to account cleanup and connection error handling
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41685
diff changeset
292 if(child) {
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
293 description = purple_xmlnode_get_data(child);
41717
ce790d508898 Minor cleanup to account cleanup and connection error handling
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41685
diff changeset
294 }
ce790d508898 Minor cleanup to account cleanup and connection error handling
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41685
diff changeset
295 current_error = purple_connection_error_info_new(type,
ce790d508898 Minor cleanup to account cleanup and connection error handling
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41685
diff changeset
296 (description != NULL) ? description : "");
ce790d508898 Minor cleanup to account cleanup and connection error handling
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41685
diff changeset
297 g_free(description);
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
298
34767
38a5613c3e26 Prepended functions private to a subsystem but used over multiple files by underscore
Ankit Vani <a@nevitus.org>
parents: 34765
diff changeset
299 _purple_account_set_current_error(account, current_error);
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
300 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
301
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
302 static PurpleAccount *
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
303 parse_account(PurpleXmlNode *node)
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
304 {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
305 PurpleAccount *ret;
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
306 PurpleXmlNode *child;
41204
c38a5a2a8d43 Add an id property to PurpleAccount and make sure it persists
Gary Kramlich <grim@reaperworld.com>
parents: 41181
diff changeset
307 gchar *id = NULL;
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
308 char *protocol_id = NULL;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
309 char *name = NULL;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
310 char *data;
41392
b5c84f55d5d2 Remove the ui parameter from purple_account_[gs]et_enabled
Gary Kramlich <grim@reaperworld.com>
parents: 41318
diff changeset
311 gboolean enabled = FALSE;
41773
c4acd02fdf73 Add a require-password property to PurpleAccount
Gary Kramlich <grim@reaperworld.com>
parents: 41733
diff changeset
312 gboolean require_password = FALSE;
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
313
41204
c38a5a2a8d43 Add an id property to PurpleAccount and make sure it persists
Gary Kramlich <grim@reaperworld.com>
parents: 41181
diff changeset
314 child = purple_xmlnode_get_child(node, "id");
c38a5a2a8d43 Add an id property to PurpleAccount and make sure it persists
Gary Kramlich <grim@reaperworld.com>
parents: 41181
diff changeset
315 if(child != NULL) {
c38a5a2a8d43 Add an id property to PurpleAccount and make sure it persists
Gary Kramlich <grim@reaperworld.com>
parents: 41181
diff changeset
316 id = purple_xmlnode_get_data(child);
c38a5a2a8d43 Add an id property to PurpleAccount and make sure it persists
Gary Kramlich <grim@reaperworld.com>
parents: 41181
diff changeset
317 }
c38a5a2a8d43 Add an id property to PurpleAccount and make sure it persists
Gary Kramlich <grim@reaperworld.com>
parents: 41181
diff changeset
318
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
319 child = purple_xmlnode_get_child(node, "protocol");
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
320 if (child != NULL)
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
321 protocol_id = purple_xmlnode_get_data(child);
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
322
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
323 child = purple_xmlnode_get_child(node, "name");
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
324 if (child != NULL)
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
325 name = purple_xmlnode_get_data(child);
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
326 if (name == NULL)
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
327 {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
328 /* Do we really need to do this? */
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
329 child = purple_xmlnode_get_child(node, "username");
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
330 if (child != NULL)
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
331 name = purple_xmlnode_get_data(child);
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
332 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
333
41773
c4acd02fdf73 Add a require-password property to PurpleAccount
Gary Kramlich <grim@reaperworld.com>
parents: 41733
diff changeset
334 child = purple_xmlnode_get_child(node, "require_password");
c4acd02fdf73 Add a require-password property to PurpleAccount
Gary Kramlich <grim@reaperworld.com>
parents: 41733
diff changeset
335 if(child != NULL) {
c4acd02fdf73 Add a require-password property to PurpleAccount
Gary Kramlich <grim@reaperworld.com>
parents: 41733
diff changeset
336 require_password = atoi(purple_xmlnode_get_data(child));
c4acd02fdf73 Add a require-password property to PurpleAccount
Gary Kramlich <grim@reaperworld.com>
parents: 41733
diff changeset
337 }
c4acd02fdf73 Add a require-password property to PurpleAccount
Gary Kramlich <grim@reaperworld.com>
parents: 41733
diff changeset
338
41392
b5c84f55d5d2 Remove the ui parameter from purple_account_[gs]et_enabled
Gary Kramlich <grim@reaperworld.com>
parents: 41318
diff changeset
339 child = purple_xmlnode_get_child(node, "enabled");
b5c84f55d5d2 Remove the ui parameter from purple_account_[gs]et_enabled
Gary Kramlich <grim@reaperworld.com>
parents: 41318
diff changeset
340 if(child != NULL) {
b5c84f55d5d2 Remove the ui parameter from purple_account_[gs]et_enabled
Gary Kramlich <grim@reaperworld.com>
parents: 41318
diff changeset
341 enabled = atoi(purple_xmlnode_get_data(child));
b5c84f55d5d2 Remove the ui parameter from purple_account_[gs]et_enabled
Gary Kramlich <grim@reaperworld.com>
parents: 41318
diff changeset
342 }
b5c84f55d5d2 Remove the ui parameter from purple_account_[gs]et_enabled
Gary Kramlich <grim@reaperworld.com>
parents: 41318
diff changeset
343
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
344 if ((protocol_id == NULL) || (name == NULL))
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
345 {
41204
c38a5a2a8d43 Add an id property to PurpleAccount and make sure it persists
Gary Kramlich <grim@reaperworld.com>
parents: 41181
diff changeset
346 g_free(id);
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
347 g_free(protocol_id);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
348 g_free(name);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
349 return NULL;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
350 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
351
41204
c38a5a2a8d43 Add an id property to PurpleAccount and make sure it persists
Gary Kramlich <grim@reaperworld.com>
parents: 41181
diff changeset
352 /* Manually create the account as the id parameter is construct only and we
c38a5a2a8d43 Add an id property to PurpleAccount and make sure it persists
Gary Kramlich <grim@reaperworld.com>
parents: 41181
diff changeset
353 * don't want people messing with it.
c38a5a2a8d43 Add an id property to PurpleAccount and make sure it persists
Gary Kramlich <grim@reaperworld.com>
parents: 41181
diff changeset
354 */
c38a5a2a8d43 Add an id property to PurpleAccount and make sure it persists
Gary Kramlich <grim@reaperworld.com>
parents: 41181
diff changeset
355 ret = g_object_new(PURPLE_TYPE_ACCOUNT,
c38a5a2a8d43 Add an id property to PurpleAccount and make sure it persists
Gary Kramlich <grim@reaperworld.com>
parents: 41181
diff changeset
356 "id", id,
c38a5a2a8d43 Add an id property to PurpleAccount and make sure it persists
Gary Kramlich <grim@reaperworld.com>
parents: 41181
diff changeset
357 "username", name,
c38a5a2a8d43 Add an id property to PurpleAccount and make sure it persists
Gary Kramlich <grim@reaperworld.com>
parents: 41181
diff changeset
358 "protocol-id", protocol_id,
41392
b5c84f55d5d2 Remove the ui parameter from purple_account_[gs]et_enabled
Gary Kramlich <grim@reaperworld.com>
parents: 41318
diff changeset
359 "enabled", enabled,
41773
c4acd02fdf73 Add a require-password property to PurpleAccount
Gary Kramlich <grim@reaperworld.com>
parents: 41733
diff changeset
360 "require-password", require_password,
41204
c38a5a2a8d43 Add an id property to PurpleAccount and make sure it persists
Gary Kramlich <grim@reaperworld.com>
parents: 41181
diff changeset
361 NULL);
c38a5a2a8d43 Add an id property to PurpleAccount and make sure it persists
Gary Kramlich <grim@reaperworld.com>
parents: 41181
diff changeset
362
c38a5a2a8d43 Add an id property to PurpleAccount and make sure it persists
Gary Kramlich <grim@reaperworld.com>
parents: 41181
diff changeset
363 g_free(id);
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
364 g_free(name);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
365 g_free(protocol_id);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
366
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
367 /* Read the alias */
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
368 child = purple_xmlnode_get_child(node, "alias");
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
369 if ((child != NULL) && ((data = purple_xmlnode_get_data(child)) != NULL))
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
370 {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
371 if (*data != '\0')
34589
428e92c79631 Renamed purple_account_[get,set]_alias to purple_account[get,set]_private_alias.
Ankit Vani <a@nevitus.org>
parents: 34588
diff changeset
372 purple_account_set_private_alias(ret, data);
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
373 g_free(data);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
374 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
375
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
376 /* Read the userinfo */
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
377 child = purple_xmlnode_get_child(node, "userinfo");
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
378 if ((child != NULL) && ((data = purple_xmlnode_get_data(child)) != NULL))
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
379 {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
380 purple_account_set_user_info(ret, data);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
381 g_free(data);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
382 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
383
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
384 /* Read an old buddyicon */
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
385 child = purple_xmlnode_get_child(node, "buddyicon");
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
386 if ((child != NULL) && ((data = purple_xmlnode_get_data(child)) != NULL))
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
387 {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
388 const char *dirname = purple_buddy_icons_get_cache_dir();
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
389 char *filename = g_build_filename(dirname, data, NULL);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
390 gchar *contents;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
391 gsize len;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
392
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
393 if (g_file_get_contents(filename, &contents, &len, NULL))
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
394 {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
395 purple_buddy_icons_set_account_icon(ret, (guchar *)contents, len);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
396 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
397
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
398 g_free(filename);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
399 g_free(data);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
400 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
401
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
402 /* Read settings (both core and UI) */
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
403 for (child = purple_xmlnode_get_child(node, "settings"); child != NULL;
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
404 child = purple_xmlnode_get_next_twin(child))
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
405 {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
406 parse_settings(child, ret);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
407 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
408
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
409 /* Read proxy */
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
410 child = purple_xmlnode_get_child(node, "proxy");
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
411 if (child != NULL)
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
412 {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
413 parse_proxy_info(child, ret);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
414 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
415
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
416 /* Read current error */
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
417 child = purple_xmlnode_get_child(node, "current_error");
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
418 if (child != NULL)
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
419 {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
420 parse_current_error(child, ret);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
421 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
422
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
423 return ret;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
424 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
425
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
426 static void
41181
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
427 load_accounts(void) {
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
428 PurpleAccountManager *manager = NULL;
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
429 PurpleXmlNode *node, *child;
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
430
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
431 accounts_loaded = TRUE;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
432
39438
e85334959b23 Move more libpurple files to ~/.config.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39352
diff changeset
433 node = purple_util_read_xml_from_config_file("accounts.xml", _("accounts"));
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
434
41181
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
435 if(node == NULL) {
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
436 return;
41181
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
437 }
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
438
41181
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
439 manager = purple_account_manager_get_default();
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
440
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
441 for(child = purple_xmlnode_get_child(node, "account"); child != NULL;
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
442 child = purple_xmlnode_get_next_twin(child))
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
443 {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
444 PurpleAccount *new_acct;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
445 new_acct = parse_account(child);
41181
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
446
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
447 purple_account_manager_add(manager, new_acct);
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
448 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
449
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
450 purple_xmlnode_free(node);
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
451
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
452 _purple_buddy_icons_account_loaded_cb();
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
453 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
454
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
455 static void
40680
f9ea6d5e8992 Use PurpleCredentialManager instead of the old keyring api.
Gary Kramlich <grim@reaperworld.com>
parents: 40570
diff changeset
456 purple_accounts_delete_set(GObject *obj, GAsyncResult *res, gpointer d) {
f9ea6d5e8992 Use PurpleCredentialManager instead of the old keyring api.
Gary Kramlich <grim@reaperworld.com>
parents: 40570
diff changeset
457 PurpleCredentialManager *manager = PURPLE_CREDENTIAL_MANAGER(obj);
f9ea6d5e8992 Use PurpleCredentialManager instead of the old keyring api.
Gary Kramlich <grim@reaperworld.com>
parents: 40570
diff changeset
458 PurpleAccount *account = PURPLE_ACCOUNT(d);
40823
338bba38df77 Port the KWallet Keyring to the new CredentialProvider API.
Gary Kramlich <grim@reaperworld.com>
parents: 40683
diff changeset
459 GError *error = NULL;
40680
f9ea6d5e8992 Use PurpleCredentialManager instead of the old keyring api.
Gary Kramlich <grim@reaperworld.com>
parents: 40570
diff changeset
460 gboolean r = FALSE;
f9ea6d5e8992 Use PurpleCredentialManager instead of the old keyring api.
Gary Kramlich <grim@reaperworld.com>
parents: 40570
diff changeset
461
40823
338bba38df77 Port the KWallet Keyring to the new CredentialProvider API.
Gary Kramlich <grim@reaperworld.com>
parents: 40683
diff changeset
462 r = purple_credential_manager_clear_password_finish(manager, res, &error);
40680
f9ea6d5e8992 Use PurpleCredentialManager instead of the old keyring api.
Gary Kramlich <grim@reaperworld.com>
parents: 40570
diff changeset
463 if(r != TRUE) {
f9ea6d5e8992 Use PurpleCredentialManager instead of the old keyring api.
Gary Kramlich <grim@reaperworld.com>
parents: 40570
diff changeset
464 purple_debug_warning("accounts",
40823
338bba38df77 Port the KWallet Keyring to the new CredentialProvider API.
Gary Kramlich <grim@reaperworld.com>
parents: 40683
diff changeset
465 "Failed to remove password for account %s: %s",
338bba38df77 Port the KWallet Keyring to the new CredentialProvider API.
Gary Kramlich <grim@reaperworld.com>
parents: 40683
diff changeset
466 purple_account_get_name_for_display(account),
41031
2918459dbd63 Don't error out when trying to remove a password that isn't stored.
Gary Kramlich <grim@reaperworld.com>
parents: 41007
diff changeset
467 (error != NULL) ? error->message : "Unknown error");
40823
338bba38df77 Port the KWallet Keyring to the new CredentialProvider API.
Gary Kramlich <grim@reaperworld.com>
parents: 40683
diff changeset
468
338bba38df77 Port the KWallet Keyring to the new CredentialProvider API.
Gary Kramlich <grim@reaperworld.com>
parents: 40683
diff changeset
469 g_clear_error(&error);
40680
f9ea6d5e8992 Use PurpleCredentialManager instead of the old keyring api.
Gary Kramlich <grim@reaperworld.com>
parents: 40570
diff changeset
470 }
f9ea6d5e8992 Use PurpleCredentialManager instead of the old keyring api.
Gary Kramlich <grim@reaperworld.com>
parents: 40570
diff changeset
471
34588
1379416703af Removed purple_account_destroy function declaration, use g_object_unref() instead.
Ankit Vani <a@nevitus.org>
parents: 34582
diff changeset
472 g_object_unref(G_OBJECT(account));
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
473 }
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
474
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
475 void
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
476 purple_accounts_delete(PurpleAccount *account)
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
477 {
41181
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
478 PurpleAccountManager *manager = NULL;
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
479 PurpleBlistNode *gnode = NULL, *cnode = NULL, *bnode = NULL;
40992
3a973a9c5a64 migrate libpurple to the ConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40863
diff changeset
480 PurpleConversationManager *conv_manager = NULL;
3a973a9c5a64 migrate libpurple to the ConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40863
diff changeset
481 PurpleCredentialManager *cred_manager = NULL;
41181
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
482 GList *iter = NULL;
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
483
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
484 g_return_if_fail(account != NULL);
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
485
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
486 /*
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
487 * Disable the account before blowing it out of the water.
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
488 * Conceptually it probably makes more sense to disable the
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
489 * account for all UIs rather than the just the current UI,
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
490 * but it doesn't really matter.
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
491 */
41392
b5c84f55d5d2 Remove the ui parameter from purple_account_[gs]et_enabled
Gary Kramlich <grim@reaperworld.com>
parents: 41318
diff changeset
492 purple_account_set_enabled(account, FALSE);
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
493
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
494 purple_notify_close_with_handle(account);
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
495 purple_request_close_with_handle(account);
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
496
41181
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
497 manager = purple_account_manager_get_default();
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
498 purple_account_manager_remove(manager, account);
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
499
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
500 /* Remove this account's buddies */
41181
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
501 for(gnode = purple_blist_get_default_root(); gnode != NULL;
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
502 gnode = purple_blist_node_get_sibling_next(gnode))
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
503 {
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
504 if(!PURPLE_IS_GROUP(gnode)) {
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
505 continue;
41181
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
506 }
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
507
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
508 cnode = purple_blist_node_get_first_child(gnode);
41181
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
509 while(cnode) {
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34812
diff changeset
510 PurpleBlistNode *cnode_next = purple_blist_node_get_sibling_next(cnode);
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
511
41733
a9085b52de8b Rename PurpleContact to PurpleMetaContact.
Gary Kramlich <grim@reaperworld.com>
parents: 41717
diff changeset
512 if(PURPLE_IS_META_CONTACT(cnode)) {
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
513 bnode = purple_blist_node_get_first_child(cnode);
41181
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
514 while(bnode) {
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34812
diff changeset
515 PurpleBlistNode *bnode_next = purple_blist_node_get_sibling_next(bnode);
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
516
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34656
diff changeset
517 if (PURPLE_IS_BUDDY(bnode)) {
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
518 PurpleBuddy *b = (PurpleBuddy *)bnode;
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
519
41181
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
520 if(purple_buddy_get_account(b) == account) {
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
521 purple_blist_remove_buddy(b);
41181
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
522 }
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
523 }
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
524 bnode = bnode_next;
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
525 }
41181
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
526 } else if(PURPLE_IS_CHAT(cnode)) {
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
527 PurpleChat *c = (PurpleChat *)cnode;
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
528
41181
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
529 if(purple_chat_get_account(c) == account) {
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
530 purple_blist_remove_chat(c);
41181
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
531 }
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
532 }
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
533 cnode = cnode_next;
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
534 }
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
535 }
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
536
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
537 /* Remove any open conversation for this account */
40992
3a973a9c5a64 migrate libpurple to the ConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40863
diff changeset
538 conv_manager = purple_conversation_manager_get_default();
3a973a9c5a64 migrate libpurple to the ConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40863
diff changeset
539 iter = purple_conversation_manager_get_all(conv_manager);
3a973a9c5a64 migrate libpurple to the ConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40863
diff changeset
540 while(iter != NULL) {
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
541 PurpleConversation *conv = iter->data;
40992
3a973a9c5a64 migrate libpurple to the ConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40863
diff changeset
542
3a973a9c5a64 migrate libpurple to the ConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40863
diff changeset
543 if(purple_conversation_get_account(conv) == account) {
34645
a04c721bebf1 Refactored accounts, blist, cmds and connection to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34622
diff changeset
544 g_object_unref(conv);
40992
3a973a9c5a64 migrate libpurple to the ConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40863
diff changeset
545 }
3a973a9c5a64 migrate libpurple to the ConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40863
diff changeset
546
3a973a9c5a64 migrate libpurple to the ConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40863
diff changeset
547 iter = g_list_delete_link(iter, iter);
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
548 }
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
549
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
550 /* This will cause the deletion of an old buddy icon. */
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
551 purple_buddy_icons_set_account_icon(account, NULL, 0);
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
552
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
553 /* This is async because we do not want the
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
554 * account being overwritten before we are done.
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
555 */
40992
3a973a9c5a64 migrate libpurple to the ConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40863
diff changeset
556 cred_manager = purple_credential_manager_get_default();
3a973a9c5a64 migrate libpurple to the ConversationManager API
Gary Kramlich <grim@reaperworld.com>
parents: 40863
diff changeset
557 purple_credential_manager_clear_password_async(cred_manager, account, NULL,
40680
f9ea6d5e8992 Use PurpleCredentialManager instead of the old keyring api.
Gary Kramlich <grim@reaperworld.com>
parents: 40570
diff changeset
558 purple_accounts_delete_set,
f9ea6d5e8992 Use PurpleCredentialManager instead of the old keyring api.
Gary Kramlich <grim@reaperworld.com>
parents: 40570
diff changeset
559 NULL);
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
560 }
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
561
41181
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
562 static void
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
563 purple_accounts_restore_current_status(PurpleAccount *account,
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
564 G_GNUC_UNUSED gpointer data) {
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
565 gboolean enabled = FALSE, online = FALSE;
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
566
41392
b5c84f55d5d2 Remove the ui parameter from purple_account_[gs]et_enabled
Gary Kramlich <grim@reaperworld.com>
parents: 41318
diff changeset
567 enabled = purple_account_get_enabled(account);
41181
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
568 online = purple_presence_is_online(purple_account_get_presence(account));
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
569
41181
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
570 if(enabled && online) {
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
571 purple_account_connect(account);
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
572 }
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
573 }
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
574
41181
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
575 void
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
576 purple_accounts_restore_current_statuses() {
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
577 PurpleAccountManager *manager = NULL;
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
578
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
579 /* If we're not connected to the Internet right now, we bail on this */
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
580 if (!purple_network_is_available()) {
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
581 g_warning("Network not connected; skipping reconnect");
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
582
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
583 return;
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
584 }
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
585
41181
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
586 manager = purple_account_manager_get_default();
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
587 purple_account_manager_foreach(manager,
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
588 purple_accounts_restore_current_status,
e859c41d8996 Create the PurpleAccountManager API
Gary Kramlich <grim@reaperworld.com>
parents: 41031
diff changeset
589 NULL);
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
590 }
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
591
35572
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
592 static PurpleAccountUiOps *
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
593 purple_account_ui_ops_copy(PurpleAccountUiOps *ops)
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
594 {
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
595 PurpleAccountUiOps *ops_new;
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
596
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
597 g_return_val_if_fail(ops != NULL, NULL);
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
598
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
599 ops_new = g_new(PurpleAccountUiOps, 1);
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
600 *ops_new = *ops;
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
601
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
602 return ops_new;
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
603 }
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
604
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
605 GType
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
606 purple_account_ui_ops_get_type(void)
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
607 {
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
608 static GType type = 0;
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
609
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
610 if (type == 0) {
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
611 type = g_boxed_type_register_static("PurpleAccountUiOps",
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
612 (GBoxedCopyFunc)purple_account_ui_ops_copy,
35597
7fcfcf147b99 Use g_free as UiOps structures GBoxed free function
Ankit Vani <a@nevitus.org>
parents: 35572
diff changeset
613 (GBoxedFreeFunc)g_free);
35572
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
614 }
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
615
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
616 return type;
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
617 }
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
618
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
619 void
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
620 purple_accounts_set_ui_ops(PurpleAccountUiOps *ops)
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
621 {
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
622 account_ui_ops = ops;
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
623 }
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
624
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
625 PurpleAccountUiOps *
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
626 purple_accounts_get_ui_ops(void)
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
627 {
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
628 return account_ui_ops;
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
629 }
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
630
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
631 void *
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
632 purple_accounts_get_handle(void)
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
633 {
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
634 static int handle;
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
635
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
636 return &handle;
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
637 }
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
638
34581
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
639 static void
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
640 signed_on_cb(PurpleConnection *gc,
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
641 gpointer unused)
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
642 {
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
643 PurpleAccount *account = purple_connection_get_account(gc);
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
644
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
645 purple_signal_emit(purple_accounts_get_handle(), "account-signed-on",
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
646 account);
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
647 }
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
648
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
649 static void
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
650 signed_off_cb(PurpleConnection *gc,
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
651 gpointer unused)
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
652 {
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
653 PurpleAccount *account = purple_connection_get_account(gc);
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
654
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
655 purple_signal_emit(purple_accounts_get_handle(), "account-signed-off",
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
656 account);
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
657 }
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
658
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
659 static void
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
660 connection_error_cb(PurpleConnection *gc,
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
661 PurpleConnectionError type,
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
662 const gchar *description,
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
663 gpointer unused)
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
664 {
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
665 PurpleAccount *account;
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
666 PurpleConnectionErrorInfo *err;
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
667
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
668 account = purple_connection_get_account(gc);
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
669
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
670 g_return_if_fail(account != NULL);
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
671
41717
ce790d508898 Minor cleanup to account cleanup and connection error handling
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41685
diff changeset
672 err = purple_connection_error_info_new(type, description);
34767
38a5613c3e26 Prepended functions private to a subsystem but used over multiple files by underscore
Ankit Vani <a@nevitus.org>
parents: 34765
diff changeset
673 _purple_account_set_current_error(account, err);
34581
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
674 }
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
675
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
676 void
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
677 purple_accounts_init(void)
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
678 {
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
679 void *handle = purple_accounts_get_handle();
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
680 void *conn_handle = purple_connections_get_handle();
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
681
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
682 purple_signal_register(handle, "account-disabled",
34812
3d6f7d9dc21d Refactored account, buddylist, certificate to use GType and GValue instead of PurpleType and PurpleValue
Ankit Vani <a@nevitus.org>
parents: 34767
diff changeset
683 purple_marshal_VOID__POINTER, G_TYPE_NONE, 1,
3d6f7d9dc21d Refactored account, buddylist, certificate to use GType and GValue instead of PurpleType and PurpleValue
Ankit Vani <a@nevitus.org>
parents: 34767
diff changeset
684 PURPLE_TYPE_ACCOUNT);
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
685
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
686 purple_signal_register(handle, "account-enabled",
34812
3d6f7d9dc21d Refactored account, buddylist, certificate to use GType and GValue instead of PurpleType and PurpleValue
Ankit Vani <a@nevitus.org>
parents: 34767
diff changeset
687 purple_marshal_VOID__POINTER, G_TYPE_NONE, 1,
3d6f7d9dc21d Refactored account, buddylist, certificate to use GType and GValue instead of PurpleType and PurpleValue
Ankit Vani <a@nevitus.org>
parents: 34767
diff changeset
688 PURPLE_TYPE_ACCOUNT);
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
689
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
690 purple_signal_register(handle, "account-created",
34812
3d6f7d9dc21d Refactored account, buddylist, certificate to use GType and GValue instead of PurpleType and PurpleValue
Ankit Vani <a@nevitus.org>
parents: 34767
diff changeset
691 purple_marshal_VOID__POINTER, G_TYPE_NONE, 1,
3d6f7d9dc21d Refactored account, buddylist, certificate to use GType and GValue instead of PurpleType and PurpleValue
Ankit Vani <a@nevitus.org>
parents: 34767
diff changeset
692 PURPLE_TYPE_ACCOUNT);
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
693
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
694 purple_signal_register(handle, "account-destroying",
34812
3d6f7d9dc21d Refactored account, buddylist, certificate to use GType and GValue instead of PurpleType and PurpleValue
Ankit Vani <a@nevitus.org>
parents: 34767
diff changeset
695 purple_marshal_VOID__POINTER, G_TYPE_NONE, 1,
3d6f7d9dc21d Refactored account, buddylist, certificate to use GType and GValue instead of PurpleType and PurpleValue
Ankit Vani <a@nevitus.org>
parents: 34767
diff changeset
696 PURPLE_TYPE_ACCOUNT);
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
697
37679
6ff708c38c04 Add "account-status-changing" signal from instantbird
Florian Quèze <florian@instantbird.org>
parents: 37195
diff changeset
698 purple_signal_register(handle, "account-status-changing",
6ff708c38c04 Add "account-status-changing" signal from instantbird
Florian Quèze <florian@instantbird.org>
parents: 37195
diff changeset
699 purple_marshal_VOID__POINTER_POINTER_POINTER,
6ff708c38c04 Add "account-status-changing" signal from instantbird
Florian Quèze <florian@instantbird.org>
parents: 37195
diff changeset
700 G_TYPE_NONE, 3, PURPLE_TYPE_ACCOUNT,
6ff708c38c04 Add "account-status-changing" signal from instantbird
Florian Quèze <florian@instantbird.org>
parents: 37195
diff changeset
701 PURPLE_TYPE_STATUS, PURPLE_TYPE_STATUS);
6ff708c38c04 Add "account-status-changing" signal from instantbird
Florian Quèze <florian@instantbird.org>
parents: 37195
diff changeset
702
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
703 purple_signal_register(handle, "account-status-changed",
34812
3d6f7d9dc21d Refactored account, buddylist, certificate to use GType and GValue instead of PurpleType and PurpleValue
Ankit Vani <a@nevitus.org>
parents: 34767
diff changeset
704 purple_marshal_VOID__POINTER_POINTER_POINTER,
3d6f7d9dc21d Refactored account, buddylist, certificate to use GType and GValue instead of PurpleType and PurpleValue
Ankit Vani <a@nevitus.org>
parents: 34767
diff changeset
705 G_TYPE_NONE, 3, PURPLE_TYPE_ACCOUNT,
3d6f7d9dc21d Refactored account, buddylist, certificate to use GType and GValue instead of PurpleType and PurpleValue
Ankit Vani <a@nevitus.org>
parents: 34767
diff changeset
706 PURPLE_TYPE_STATUS, PURPLE_TYPE_STATUS);
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
707
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
708 purple_signal_register(handle, "account-actions-changed",
34812
3d6f7d9dc21d Refactored account, buddylist, certificate to use GType and GValue instead of PurpleType and PurpleValue
Ankit Vani <a@nevitus.org>
parents: 34767
diff changeset
709 purple_marshal_VOID__POINTER, G_TYPE_NONE, 1,
3d6f7d9dc21d Refactored account, buddylist, certificate to use GType and GValue instead of PurpleType and PurpleValue
Ankit Vani <a@nevitus.org>
parents: 34767
diff changeset
710 PURPLE_TYPE_ACCOUNT);
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
711
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
712 purple_signal_register(handle, "account-error-changed",
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
713 purple_marshal_VOID__POINTER_POINTER_POINTER,
34812
3d6f7d9dc21d Refactored account, buddylist, certificate to use GType and GValue instead of PurpleType and PurpleValue
Ankit Vani <a@nevitus.org>
parents: 34767
diff changeset
714 G_TYPE_NONE, 3, PURPLE_TYPE_ACCOUNT,
3d6f7d9dc21d Refactored account, buddylist, certificate to use GType and GValue instead of PurpleType and PurpleValue
Ankit Vani <a@nevitus.org>
parents: 34767
diff changeset
715 PURPLE_TYPE_CONNECTION_ERROR_INFO,
3d6f7d9dc21d Refactored account, buddylist, certificate to use GType and GValue instead of PurpleType and PurpleValue
Ankit Vani <a@nevitus.org>
parents: 34767
diff changeset
716 PURPLE_TYPE_CONNECTION_ERROR_INFO);
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
717
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
718 purple_signal_register(handle, "account-signed-on",
34812
3d6f7d9dc21d Refactored account, buddylist, certificate to use GType and GValue instead of PurpleType and PurpleValue
Ankit Vani <a@nevitus.org>
parents: 34767
diff changeset
719 purple_marshal_VOID__POINTER, G_TYPE_NONE, 1,
3d6f7d9dc21d Refactored account, buddylist, certificate to use GType and GValue instead of PurpleType and PurpleValue
Ankit Vani <a@nevitus.org>
parents: 34767
diff changeset
720 PURPLE_TYPE_ACCOUNT);
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
721
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
722 purple_signal_register(handle, "account-signed-off",
34812
3d6f7d9dc21d Refactored account, buddylist, certificate to use GType and GValue instead of PurpleType and PurpleValue
Ankit Vani <a@nevitus.org>
parents: 34767
diff changeset
723 purple_marshal_VOID__POINTER, G_TYPE_NONE, 1,
3d6f7d9dc21d Refactored account, buddylist, certificate to use GType and GValue instead of PurpleType and PurpleValue
Ankit Vani <a@nevitus.org>
parents: 34767
diff changeset
724 PURPLE_TYPE_ACCOUNT);
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
725
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
726 purple_signal_connect(conn_handle, "signed-on", handle,
41314
0dc72eacd8bf Replace PURPLE_CALLBACK by G_CALLBACK
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41240
diff changeset
727 G_CALLBACK(signed_on_cb), NULL);
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
728 purple_signal_connect(conn_handle, "signed-off", handle,
41314
0dc72eacd8bf Replace PURPLE_CALLBACK by G_CALLBACK
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41240
diff changeset
729 G_CALLBACK(signed_off_cb), NULL);
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
730 purple_signal_connect(conn_handle, "connection-error", handle,
41314
0dc72eacd8bf Replace PURPLE_CALLBACK by G_CALLBACK
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41240
diff changeset
731 G_CALLBACK(connection_error_cb), NULL);
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
732
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
733 load_accounts();
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
734
40505
e2c4be9e3aa6 fix some issues that were identified while working on a flatpak build
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
735 g_signal_connect(G_OBJECT(g_network_monitor_get_default()),
e2c4be9e3aa6 fix some issues that were identified while working on a flatpak build
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
736 "network-changed",
40512
05663def7b82 Fix some easy compiler warnings
Gary Kramlich <grim@reaperworld.com>
parents: 40505
diff changeset
737 G_CALLBACK(purple_accounts_network_changed_cb), NULL);
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
738 }
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
739
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
740 void
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
741 purple_accounts_uninit(void)
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
742 {
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
743 gpointer handle = purple_accounts_get_handle();
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
744 if (save_timer != 0)
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
745 {
38433
361c801c4536 Remove purple_timeout_* function usage
Mike Ruprecht <cmaiku@gmail.com>
parents: 37679
diff changeset
746 g_source_remove(save_timer);
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
747 save_timer = 0;
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
748 sync_accounts();
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
749 }
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
750
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
751 purple_signals_disconnect_by_handle(handle);
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
752 purple_signals_unregister_by_instance(handle);
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
753 }

mercurial