libpurple/accounts.c

Sat, 02 Jan 2021 22:05:09 -0600

author
Gary Kramlich <grim@reaperworld.com>
date
Sat, 02 Jan 2021 22:05:09 -0600
changeset 40683
dcc53af7a4fb
parent 40680
f9ea6d5e8992
child 40823
338bba38df77
permissions
-rw-r--r--

Remove the buddy pounces api

This feature has more or less been stalkerware since its inception and the
only useful feature that came of it was offline message emulation which isn't
necessary for most networks nowadays.

Testing Done:
Compiled and ran locally.

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

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
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
24 #include "internal.h"
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
25 #include "accounts.h"
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
26 #include "core.h"
34581
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
27 #include "debug.h"
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
28 #include "enums.h"
34582
67a520874aa9 Exposed some functions to the header files to resolve dependencies.
Ankit Vani <a@nevitus.org>
parents: 34581
diff changeset
29 #include "network.h"
40680
f9ea6d5e8992 Use PurpleCredentialManager instead of the old keyring api.
Gary Kramlich <grim@reaperworld.com>
parents: 40570
diff changeset
30 #include "purplecredentialmanager.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
31 #include "purpleprivate.h"
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
32
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
33 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
34
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
35 static GList *accounts = NULL;
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 *********************************************************************/
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
51 static PurpleXmlNode *
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
52 accounts_to_xmlnode(void)
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
53 {
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
54 PurpleXmlNode *node, *child;
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
55 GList *cur;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
56
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
57 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
58 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
59
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
60 for (cur = purple_accounts_get_all(); cur != NULL; cur = cur->next)
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
61 {
35178
7c775624f964 Move (_)purple_account_to_xmlnode to internal.h
Ankit Vani <a@nevitus.org>
parents: 35176
diff changeset
62 child = _purple_account_to_xmlnode(cur->data);
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
63 purple_xmlnode_insert_child(node, child);
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
64 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
65
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
66 return node;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
67 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
68
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
69 static void
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
70 sync_accounts(void)
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
71 {
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
72 PurpleXmlNode *node;
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
73 char *data;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
74
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
75 if (!accounts_loaded)
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
76 {
35176
b0659f31989d Update debug categories for new filenames
Ankit Vani <a@nevitus.org>
parents: 35091
diff changeset
77 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
78 "they were read!\n");
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
79 return;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
80 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
81
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
82 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
83 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
84 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
85 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
86 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
87 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
88
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
89 static gboolean
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
90 save_cb(gpointer data)
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 sync_accounts();
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
93 save_timer = 0;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
94 return FALSE;
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
34582
67a520874aa9 Exposed some functions to the header files to resolve dependencies.
Ankit Vani <a@nevitus.org>
parents: 34581
diff changeset
97 void
67a520874aa9 Exposed some functions to the header files to resolve dependencies.
Ankit Vani <a@nevitus.org>
parents: 34581
diff changeset
98 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
99 {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
100 if (save_timer == 0)
38433
361c801c4536 Remove purple_timeout_* function usage
Mike Ruprecht <cmaiku@gmail.com>
parents: 37679
diff changeset
101 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
102 }
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 static void
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
105 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
106 {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
107 /* 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
108 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
109 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
110
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
111 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
112 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
113 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
114 val = "old_ssl";
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
115 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
116 val = "opportunistic_tls";
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
117
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
118 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
119 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
120 }
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
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
123 static void
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
124 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
125 {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
126 const char *ui;
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
127 PurpleXmlNode *child;
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
128
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
129 /* Get the UI string, if these are UI settings */
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
130 ui = purple_xmlnode_get_attrib(node, "ui");
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
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
165 if (ui == NULL)
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
166 {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
167 if (type == PURPLE_PREF_STRING)
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
168 purple_account_set_string(account, name, data);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
169 else if (type == PURPLE_PREF_INT)
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
170 purple_account_set_int(account, name, atoi(data));
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
171 else if (type == PURPLE_PREF_BOOLEAN)
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
172 purple_account_set_bool(account, name,
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
173 (*data == '0' ? FALSE : TRUE));
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
174 } else {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
175 if (type == PURPLE_PREF_STRING)
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
176 purple_account_set_ui_string(account, ui, name, data);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
177 else if (type == PURPLE_PREF_INT)
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
178 purple_account_set_ui_int(account, ui, name, atoi(data));
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
179 else if (type == PURPLE_PREF_BOOLEAN)
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
180 purple_account_set_ui_bool(account, ui, name,
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
181 (*data == '0' ? FALSE : TRUE));
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
182 }
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 g_free(data);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
185 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
186
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
187 /* 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
188 * Edit Account dialog. */
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
189 migrate_xmpp_encryption(account);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
190 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
191
40328
45e719e8d3bc Replace lists of PurpleAttr with GHashTable
qarkai <qarkai@gmail.com>
parents: 40327
diff changeset
192 static GHashTable *
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
193 parse_status_attrs(PurpleXmlNode *node, PurpleStatus *status)
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
194 {
40328
45e719e8d3bc Replace lists of PurpleAttr with GHashTable
qarkai <qarkai@gmail.com>
parents: 40327
diff changeset
195 GHashTable *attrs = g_hash_table_new(g_str_hash, g_str_equal);
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
196 PurpleXmlNode *child;
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
197 GValue *attr_value;
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
198
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
199 for (child = purple_xmlnode_get_child(node, "attribute"); child != NULL;
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
200 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
201 {
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
202 const char *id = purple_xmlnode_get_attrib(child, "id");
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
203 const char *value = purple_xmlnode_get_attrib(child, "value");
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
204
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
205 if (!id || !*id || !value || !*value)
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
206 continue;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
207
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
208 attr_value = purple_status_get_attr_value(status, id);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
209 if (!attr_value)
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
210 continue;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
211
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
212 switch (G_VALUE_TYPE(attr_value))
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
213 {
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
214 case G_TYPE_STRING:
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
215 g_hash_table_insert(attrs, (char *)id, (char *)value);
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
216 break;
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
217 case G_TYPE_INT:
3d6f7d9dc21d Refactored account, buddylist, certificate to use GType and GValue instead of PurpleType and PurpleValue
Ankit Vani <a@nevitus.org>
parents: 34767
diff changeset
218 case G_TYPE_BOOLEAN:
34579
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 int v;
40328
45e719e8d3bc Replace lists of PurpleAttr with GHashTable
qarkai <qarkai@gmail.com>
parents: 40327
diff changeset
221 if (sscanf(value, "%d", &v) == 1) {
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
222 g_hash_table_insert(attrs, (char *)id, GINT_TO_POINTER(v));
40328
45e719e8d3bc Replace lists of PurpleAttr with GHashTable
qarkai <qarkai@gmail.com>
parents: 40327
diff changeset
223 }
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
224 break;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
225 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
226 default:
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
227 break;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
228 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
229 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
230
40328
45e719e8d3bc Replace lists of PurpleAttr with GHashTable
qarkai <qarkai@gmail.com>
parents: 40327
diff changeset
231 return attrs;
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
232 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
233
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
234 static void
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
235 parse_status(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
236 {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
237 gboolean active = FALSE;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
238 const char *data;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
239 const char *type;
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
240 PurpleXmlNode *child;
40328
45e719e8d3bc Replace lists of PurpleAttr with GHashTable
qarkai <qarkai@gmail.com>
parents: 40327
diff changeset
241 GHashTable *attrs = NULL;
34579
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 /* Get the active/inactive state */
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
244 data = purple_xmlnode_get_attrib(node, "active");
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
245 if (data == NULL)
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
246 return;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
247 if (g_ascii_strcasecmp(data, "true") == 0)
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
248 active = TRUE;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
249 else if (g_ascii_strcasecmp(data, "false") == 0)
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
250 active = FALSE;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
251 else
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
252 return;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
253
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
254 /* Get the type of the status */
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
255 type = purple_xmlnode_get_attrib(node, "type");
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
256 if (type == NULL)
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
257 return;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
258
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
259 /* Read attributes into a GList */
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
260 child = purple_xmlnode_get_child(node, "attributes");
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
261 if (child != NULL)
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 attrs = parse_status_attrs(child,
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
264 purple_account_get_status(account, type));
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
265 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
266
40332
cd2da3a58f6d Rename purple_account_set_status_list and purple_status_set_active_with_attrs_list
qarkai <qarkai@gmail.com>
parents: 40328
diff changeset
267 purple_account_set_status_attrs(account, type, active, attrs);
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
268
40328
45e719e8d3bc Replace lists of PurpleAttr with GHashTable
qarkai <qarkai@gmail.com>
parents: 40327
diff changeset
269 g_hash_table_destroy(attrs);
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
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
272 static void
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
273 parse_statuses(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
274 {
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
275 PurpleXmlNode *child;
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
276
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
277 for (child = purple_xmlnode_get_child(node, "status"); child != NULL;
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
278 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
279 {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
280 parse_status(child, account);
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 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
283
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
284 static void
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
285 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
286 {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
287 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
288 PurpleXmlNode *child;
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
289 char *data;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
290
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
291 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
292
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
293 /* Use the global proxy settings, by default */
35378
5d9e2581005b gtk-doc prep: *_get_type() functions are hidden as standard GType-returning funcs, so rename them.
Ankit Vani <a@nevitus.org>
parents: 35178
diff changeset
294 purple_proxy_info_set_proxy_type(proxy_info, PURPLE_PROXY_USE_GLOBAL);
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
295
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
296 /* 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
297 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
298 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
299 {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
300 if (purple_strequal(data, "global"))
35378
5d9e2581005b gtk-doc prep: *_get_type() functions are hidden as standard GType-returning funcs, so rename them.
Ankit Vani <a@nevitus.org>
parents: 35178
diff changeset
301 purple_proxy_info_set_proxy_type(proxy_info, PURPLE_PROXY_USE_GLOBAL);
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
302 else if (purple_strequal(data, "none"))
35378
5d9e2581005b gtk-doc prep: *_get_type() functions are hidden as standard GType-returning funcs, so rename them.
Ankit Vani <a@nevitus.org>
parents: 35178
diff changeset
303 purple_proxy_info_set_proxy_type(proxy_info, PURPLE_PROXY_NONE);
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
304 else if (purple_strequal(data, "http"))
35378
5d9e2581005b gtk-doc prep: *_get_type() functions are hidden as standard GType-returning funcs, so rename them.
Ankit Vani <a@nevitus.org>
parents: 35178
diff changeset
305 purple_proxy_info_set_proxy_type(proxy_info, PURPLE_PROXY_HTTP);
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
306 else if (purple_strequal(data, "socks4"))
35378
5d9e2581005b gtk-doc prep: *_get_type() functions are hidden as standard GType-returning funcs, so rename them.
Ankit Vani <a@nevitus.org>
parents: 35178
diff changeset
307 purple_proxy_info_set_proxy_type(proxy_info, PURPLE_PROXY_SOCKS4);
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
308 else if (purple_strequal(data, "socks5"))
35378
5d9e2581005b gtk-doc prep: *_get_type() functions are hidden as standard GType-returning funcs, so rename them.
Ankit Vani <a@nevitus.org>
parents: 35178
diff changeset
309 purple_proxy_info_set_proxy_type(proxy_info, PURPLE_PROXY_SOCKS5);
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
310 else if (purple_strequal(data, "tor"))
35378
5d9e2581005b gtk-doc prep: *_get_type() functions are hidden as standard GType-returning funcs, so rename them.
Ankit Vani <a@nevitus.org>
parents: 35178
diff changeset
311 purple_proxy_info_set_proxy_type(proxy_info, PURPLE_PROXY_TOR);
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
312 else if (purple_strequal(data, "envvar"))
35378
5d9e2581005b gtk-doc prep: *_get_type() functions are hidden as standard GType-returning funcs, so rename them.
Ankit Vani <a@nevitus.org>
parents: 35178
diff changeset
313 purple_proxy_info_set_proxy_type(proxy_info, PURPLE_PROXY_USE_ENVVAR);
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
314 else
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
315 {
35176
b0659f31989d Update debug categories for new filenames
Ankit Vani <a@nevitus.org>
parents: 35091
diff changeset
316 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
317 "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
318 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
319 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
320 g_free(data);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
321 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
322
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
323 /* 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
324 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
325 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
326 {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
327 purple_proxy_info_set_host(proxy_info, data);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
328 g_free(data);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
329 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
330
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
331 /* 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
332 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
333 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
334 {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
335 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
336 g_free(data);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
337 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
338
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
339 /* 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
340 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
341 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
342 {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
343 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
344 g_free(data);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
345 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
346
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
347 /* 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
348 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
349 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
350 {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
351 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
352 g_free(data);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
353 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
354
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
355 /* If there are no values set then proxy_info NULL */
35378
5d9e2581005b gtk-doc prep: *_get_type() functions are hidden as standard GType-returning funcs, so rename them.
Ankit Vani <a@nevitus.org>
parents: 35178
diff changeset
356 if ((purple_proxy_info_get_proxy_type(proxy_info) == PURPLE_PROXY_USE_GLOBAL) &&
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
357 (purple_proxy_info_get_host(proxy_info) == NULL) &&
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
358 (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
359 (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
360 (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
361 {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
362 purple_proxy_info_destroy(proxy_info);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
363 return;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
364 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
365
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
366 purple_account_set_proxy_info(account, proxy_info);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
367 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
368
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
369 static void
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
370 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
371 {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
372 guint type;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
373 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
374 PurpleXmlNode *child;
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
375 PurpleConnectionErrorInfo *current_error = NULL;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
376
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, "type");
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 || (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
379 return;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
380 type = atoi(type_str);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
381 g_free(type_str);
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 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
384 {
35176
b0659f31989d Update debug categories for new filenames
Ankit Vani <a@nevitus.org>
parents: 35091
diff changeset
385 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
386 "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
387 "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
388 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
389 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
390 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
391
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
392 child = purple_xmlnode_get_child(node, "description");
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
393 if (child)
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
394 description = 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
395 if (description == NULL)
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
396 description = g_strdup("");
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 current_error = g_new0(PurpleConnectionErrorInfo, 1);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
399 current_error->type = type;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
400 current_error->description = description;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
401
34767
38a5613c3e26 Prepended functions private to a subsystem but used over multiple files by underscore
Ankit Vani <a@nevitus.org>
parents: 34765
diff changeset
402 _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
403 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
404
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
405 static PurpleAccount *
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
406 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
407 {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
408 PurpleAccount *ret;
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
409 PurpleXmlNode *child;
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
410 char *protocol_id = NULL;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
411 char *name = NULL;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
412 char *data;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
413
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
414 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
415 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
416 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
417
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
418 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
419 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
420 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
421 if (name == NULL)
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 /* 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
424 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
425 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
426 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
427 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
428
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
429 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
430 {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
431 g_free(protocol_id);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
432 g_free(name);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
433 return NULL;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
434 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
435
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
436 ret = purple_account_new(name, protocol_id);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
437 g_free(name);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
438 g_free(protocol_id);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
439
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
440 /* 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
441 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
442 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
443 {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
444 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
445 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
446 g_free(data);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
447 }
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 /* Read the statuses */
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
450 child = purple_xmlnode_get_child(node, "statuses");
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
451 if (child != NULL)
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
452 {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
453 parse_statuses(child, ret);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
454 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
455
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
456 /* 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
457 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
458 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
459 {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
460 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
461 g_free(data);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
462 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
463
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
464 /* 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
465 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
466 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
467 {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
468 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
469 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
470 gchar *contents;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
471 gsize len;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
472
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
473 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
474 {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
475 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
476 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
477
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
478 g_free(filename);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
479 g_free(data);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
480 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
481
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
482 /* 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
483 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
484 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
485 {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
486 parse_settings(child, ret);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
487 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
488
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
489 /* Read proxy */
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
490 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
491 if (child != NULL)
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
492 {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
493 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
494 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
495
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
496 /* 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
497 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
498 if (child != NULL)
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
499 {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
500 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
501 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
502
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
503 /* Read the password */
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
504 child = purple_xmlnode_get_child(node, "password");
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
505 if (child != NULL)
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
506 {
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
507 const char *keyring_id = purple_xmlnode_get_attrib(child, "keyring_id");
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
508 const char *mode = purple_xmlnode_get_attrib(child, "mode");
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
509 gboolean result;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
510
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
511 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
512 result = purple_keyring_import_password(ret, keyring_id, mode, data, NULL);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
513
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
514 if (result == TRUE || purple_keyring_get_inuse() == NULL) {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
515 purple_account_set_remember_password(ret, TRUE);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
516 } else {
35176
b0659f31989d Update debug categories for new filenames
Ankit Vani <a@nevitus.org>
parents: 35091
diff changeset
517 purple_debug_error("accounts", "Failed to import password.\n");
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
518 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
519 purple_str_wipe(data);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
520 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
521
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
522 return ret;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
523 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
524
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
525 static void
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
526 load_accounts(void)
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
527 {
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
528 PurpleXmlNode *node, *child;
34579
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
529
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
530 accounts_loaded = TRUE;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
531
39438
e85334959b23 Move more libpurple files to ~/.config.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39352
diff changeset
532 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
533
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
534 if (node == NULL)
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
535 return;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
536
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
537 for (child = purple_xmlnode_get_child(node, "account"); child != NULL;
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
538 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
539 {
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
540 PurpleAccount *new_acct;
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
541 new_acct = parse_account(child);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
542 purple_accounts_add(new_acct);
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
543 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
544
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 34889
diff changeset
545 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
546
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
547 _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
548 }
e718d0eea155 Moved some local functions from account.c to accounts.c
Ankit Vani <a@nevitus.org>
parents: 34574
diff changeset
549
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
550 void
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
551 purple_accounts_add(PurpleAccount *account)
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 g_return_if_fail(account != NULL);
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
554
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
555 if (g_list_find(accounts, account) != NULL)
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
556 return;
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
557
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
558 accounts = g_list_append(accounts, account);
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
559
34582
67a520874aa9 Exposed some functions to the header files to resolve dependencies.
Ankit Vani <a@nevitus.org>
parents: 34581
diff changeset
560 purple_accounts_schedule_save();
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
561
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
562 purple_signal_emit(purple_accounts_get_handle(), "account-added", account);
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
563 }
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
564
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
565 void
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
566 purple_accounts_remove(PurpleAccount *account)
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
567 {
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
568 g_return_if_fail(account != NULL);
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
569
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
570 accounts = g_list_remove(accounts, account);
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
571
34582
67a520874aa9 Exposed some functions to the header files to resolve dependencies.
Ankit Vani <a@nevitus.org>
parents: 34581
diff changeset
572 purple_accounts_schedule_save();
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
573
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
574 /* Clearing the error ensures that account-error-changed is emitted,
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
575 * which is the end of the guarantee that the the error's pointer is
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
576 * valid.
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
577 */
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
578 purple_account_clear_current_error(account);
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
579 purple_signal_emit(purple_accounts_get_handle(), "account-removed", account);
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
580 }
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
581
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
582 static void
40680
f9ea6d5e8992 Use PurpleCredentialManager instead of the old keyring api.
Gary Kramlich <grim@reaperworld.com>
parents: 40570
diff changeset
583 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
584 PurpleCredentialManager *manager = PURPLE_CREDENTIAL_MANAGER(obj);
f9ea6d5e8992 Use PurpleCredentialManager instead of the old keyring api.
Gary Kramlich <grim@reaperworld.com>
parents: 40570
diff changeset
585 PurpleAccount *account = PURPLE_ACCOUNT(d);
f9ea6d5e8992 Use PurpleCredentialManager instead of the old keyring api.
Gary Kramlich <grim@reaperworld.com>
parents: 40570
diff changeset
586 gboolean r = FALSE;
f9ea6d5e8992 Use PurpleCredentialManager instead of the old keyring api.
Gary Kramlich <grim@reaperworld.com>
parents: 40570
diff changeset
587
f9ea6d5e8992 Use PurpleCredentialManager instead of the old keyring api.
Gary Kramlich <grim@reaperworld.com>
parents: 40570
diff changeset
588 r = purple_credential_manager_clear_password_finish(manager, res, NULL);
f9ea6d5e8992 Use PurpleCredentialManager instead of the old keyring api.
Gary Kramlich <grim@reaperworld.com>
parents: 40570
diff changeset
589 if(r != TRUE) {
f9ea6d5e8992 Use PurpleCredentialManager instead of the old keyring api.
Gary Kramlich <grim@reaperworld.com>
parents: 40570
diff changeset
590 purple_debug_warning("accounts",
f9ea6d5e8992 Use PurpleCredentialManager instead of the old keyring api.
Gary Kramlich <grim@reaperworld.com>
parents: 40570
diff changeset
591 "Failed to remove password for account %s",
f9ea6d5e8992 Use PurpleCredentialManager instead of the old keyring api.
Gary Kramlich <grim@reaperworld.com>
parents: 40570
diff changeset
592 purple_account_get_name_for_display(account));
f9ea6d5e8992 Use PurpleCredentialManager instead of the old keyring api.
Gary Kramlich <grim@reaperworld.com>
parents: 40570
diff changeset
593 }
f9ea6d5e8992 Use PurpleCredentialManager instead of the old keyring api.
Gary Kramlich <grim@reaperworld.com>
parents: 40570
diff changeset
594
34588
1379416703af Removed purple_account_destroy function declaration, use g_object_unref() instead.
Ankit Vani <a@nevitus.org>
parents: 34582
diff changeset
595 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
596 }
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
597
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
598 void
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
599 purple_accounts_delete(PurpleAccount *account)
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
600 {
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34812
diff changeset
601 PurpleBlistNode *gnode, *cnode, *bnode;
40680
f9ea6d5e8992 Use PurpleCredentialManager instead of the old keyring api.
Gary Kramlich <grim@reaperworld.com>
parents: 40570
diff changeset
602 PurpleCredentialManager *manager = NULL;
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
603 GList *iter;
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
604
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
605 g_return_if_fail(account != NULL);
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
606
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
607 /*
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
608 * 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
609 * 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
610 * 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
611 * but it doesn't really matter.
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
612 */
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
613 purple_account_set_enabled(account, purple_core_get_ui(), FALSE);
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
614
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
615 purple_notify_close_with_handle(account);
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
616 purple_request_close_with_handle(account);
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
617
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
618 purple_accounts_remove(account);
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
619
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
620 /* Remove this account's buddies */
39665
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39438
diff changeset
621 for (gnode = purple_blist_get_default_root(); gnode != NULL;
2172e3b8eeef Rename some buddy list accessor functions.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39438
diff changeset
622 gnode = purple_blist_node_get_sibling_next(gnode)) {
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34656
diff changeset
623 if (!PURPLE_IS_GROUP(gnode))
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
624 continue;
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
625
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
626 cnode = purple_blist_node_get_first_child(gnode);
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
627 while (cnode) {
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34812
diff changeset
628 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
629
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34656
diff changeset
630 if(PURPLE_IS_CONTACT(cnode)) {
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
631 bnode = purple_blist_node_get_first_child(cnode);
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
632 while (bnode) {
34864
0e292d8887de Renamed PurpleBListNode back to PurpleBlistNode
Ankit Vani <a@nevitus.org>
parents: 34812
diff changeset
633 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
634
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34656
diff changeset
635 if (PURPLE_IS_BUDDY(bnode)) {
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
636 PurpleBuddy *b = (PurpleBuddy *)bnode;
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 if (purple_buddy_get_account(b) == account)
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
639 purple_blist_remove_buddy(b);
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
640 }
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
641 bnode = bnode_next;
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
642 }
34696
6e0d13978666 Global replace to use GObject-style macros. See details.
Ankit Vani <a@nevitus.org>
parents: 34656
diff changeset
643 } 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
644 PurpleChat *c = (PurpleChat *)cnode;
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
645
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
646 if (purple_chat_get_account(c) == account)
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
647 purple_blist_remove_chat(c);
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
648 }
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
649 cnode = cnode_next;
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
650 }
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
651 }
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
652
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
653 /* Remove any open conversation for this account */
34656
adbcbe04077c Refactored remaining libpurple to use the GObject conversation API
Ankit Vani <a@nevitus.org>
parents: 34645
diff changeset
654 for (iter = purple_conversations_get_all(); iter; ) {
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
655 PurpleConversation *conv = iter->data;
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
656 iter = iter->next;
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
657 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
658 g_object_unref(conv);
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
659 }
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
660
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
661 /* 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
662 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
663
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
664 /* 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
665 * 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
666 */
40680
f9ea6d5e8992 Use PurpleCredentialManager instead of the old keyring api.
Gary Kramlich <grim@reaperworld.com>
parents: 40570
diff changeset
667 manager = purple_credential_manager_get_default();
f9ea6d5e8992 Use PurpleCredentialManager instead of the old keyring api.
Gary Kramlich <grim@reaperworld.com>
parents: 40570
diff changeset
668 purple_credential_manager_clear_password_async(manager, account, NULL,
f9ea6d5e8992 Use PurpleCredentialManager instead of the old keyring api.
Gary Kramlich <grim@reaperworld.com>
parents: 40570
diff changeset
669 purple_accounts_delete_set,
f9ea6d5e8992 Use PurpleCredentialManager instead of the old keyring api.
Gary Kramlich <grim@reaperworld.com>
parents: 40570
diff changeset
670 NULL);
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
671 }
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
672
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
673 void
34889
4ea2da14cd0e Merged default branch
Ankit Vani <a@nevitus.org>
parents: 34864
diff changeset
674 purple_accounts_reorder(PurpleAccount *account, guint new_index)
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
675 {
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
676 gint index;
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
677 GList *l;
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 g_return_if_fail(account != NULL);
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
680 g_return_if_fail(new_index <= g_list_length(accounts));
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 index = g_list_index(accounts, account);
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
683
34889
4ea2da14cd0e Merged default branch
Ankit Vani <a@nevitus.org>
parents: 34864
diff changeset
684 if (index < 0) {
35176
b0659f31989d Update debug categories for new filenames
Ankit Vani <a@nevitus.org>
parents: 35091
diff changeset
685 purple_debug_error("accounts",
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
686 "Unregistered account (%s) discovered during reorder!\n",
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
687 purple_account_get_username(account));
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
688 return;
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
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
691 l = g_list_nth(accounts, index);
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
692
34889
4ea2da14cd0e Merged default branch
Ankit Vani <a@nevitus.org>
parents: 34864
diff changeset
693 if (new_index > (guint)index)
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
694 new_index--;
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
695
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
696 /* Remove the old one. */
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
697 accounts = g_list_delete_link(accounts, l);
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
698
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
699 /* Insert it where it should go. */
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
700 accounts = g_list_insert(accounts, account, new_index);
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
701
34582
67a520874aa9 Exposed some functions to the header files to resolve dependencies.
Ankit Vani <a@nevitus.org>
parents: 34581
diff changeset
702 purple_accounts_schedule_save();
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
703 }
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
704
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
705 GList *
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
706 purple_accounts_get_all(void)
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 return accounts;
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
709 }
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
710
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
711 GList *
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
712 purple_accounts_get_all_active(void)
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
713 {
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
714 GList *list = NULL;
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
715 GList *all = purple_accounts_get_all();
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
716
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
717 while (all != NULL) {
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
718 PurpleAccount *account = all->data;
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
719
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
720 if (purple_account_get_enabled(account, purple_core_get_ui()))
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
721 list = g_list_append(list, account);
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
722
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
723 all = all->next;
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
724 }
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 return list;
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
727 }
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
728
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
729 PurpleAccount *
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
730 purple_accounts_find(const char *name, const char *protocol_id)
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
731 {
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
732 PurpleAccount *account = NULL;
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
733 GList *l;
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
734 char *who;
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
735
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
736 g_return_val_if_fail(name != NULL, NULL);
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
737 g_return_val_if_fail(protocol_id != NULL, NULL);
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 for (l = purple_accounts_get_all(); l != NULL; l = l->next) {
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
740 account = (PurpleAccount *)l->data;
34581
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
741
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
742 if (!purple_strequal(purple_account_get_protocol_id(account), protocol_id))
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
743 continue;
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
744
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
745 who = g_strdup(purple_normalize(account, name));
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
746 if (purple_strequal(purple_normalize(account, purple_account_get_username(account)), who)) {
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
747 g_free(who);
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
748 return account;
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 g_free(who);
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
751 }
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
752
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
753 return NULL;
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
754 }
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
755
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
756 void
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
757 purple_accounts_restore_current_statuses()
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
758 {
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
759 GList *l;
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
760 PurpleAccount *account;
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
761
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
762 /* If we're not connected to the Internet right now, we bail on this */
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
763 if (!purple_network_is_available())
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
764 {
35176
b0659f31989d Update debug categories for new filenames
Ankit Vani <a@nevitus.org>
parents: 35091
diff changeset
765 purple_debug_warning("accounts", "Network not connected; skipping reconnect\n");
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
766 return;
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
767 }
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
768
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
769 for (l = purple_accounts_get_all(); l != NULL; l = l->next)
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
770 {
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
771 account = (PurpleAccount *)l->data;
34581
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
772
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
773 if (purple_account_get_enabled(account, purple_core_get_ui()) &&
34581
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
774 (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
775 {
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
776 purple_account_connect(account);
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
777 }
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
778 }
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
779 }
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
780
35572
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
781 static PurpleAccountUiOps *
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
782 purple_account_ui_ops_copy(PurpleAccountUiOps *ops)
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
783 {
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
784 PurpleAccountUiOps *ops_new;
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
785
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
786 g_return_val_if_fail(ops != NULL, NULL);
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
787
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
788 ops_new = g_new(PurpleAccountUiOps, 1);
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
789 *ops_new = *ops;
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
790
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
791 return ops_new;
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
792 }
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
793
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
794 GType
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
795 purple_account_ui_ops_get_type(void)
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
796 {
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
797 static GType type = 0;
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
798
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
799 if (type == 0) {
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
800 type = g_boxed_type_register_static("PurpleAccountUiOps",
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
801 (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
802 (GBoxedFreeFunc)g_free);
35572
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
803 }
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
804
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
805 return type;
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
806 }
5c4846317f2f Box the *UiOps structures
Ankit Vani <a@nevitus.org>
parents: 35475
diff changeset
807
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
808 void
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
809 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
810 {
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
811 account_ui_ops = ops;
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
812 }
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
813
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
814 PurpleAccountUiOps *
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
815 purple_accounts_get_ui_ops(void)
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
816 {
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
817 return account_ui_ops;
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
818 }
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
819
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
820 void *
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
821 purple_accounts_get_handle(void)
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
822 {
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
823 static int handle;
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
824
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
825 return &handle;
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
826 }
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
827
34581
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
828 static void
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
829 signed_on_cb(PurpleConnection *gc,
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
830 gpointer unused)
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
831 {
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
832 PurpleAccount *account = purple_connection_get_account(gc);
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
833 purple_account_clear_current_error(account);
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
834
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
835 purple_signal_emit(purple_accounts_get_handle(), "account-signed-on",
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
836 account);
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
837 }
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
838
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
839 static void
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
840 signed_off_cb(PurpleConnection *gc,
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
841 gpointer unused)
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
842 {
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
843 PurpleAccount *account = purple_connection_get_account(gc);
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
844
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
845 purple_signal_emit(purple_accounts_get_handle(), "account-signed-off",
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
846 account);
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
847 }
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
848
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
849 static void
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
850 connection_error_cb(PurpleConnection *gc,
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
851 PurpleConnectionError type,
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
852 const gchar *description,
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
853 gpointer unused)
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
854 {
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
855 PurpleAccount *account;
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
856 PurpleConnectionErrorInfo *err;
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
857
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
858 account = purple_connection_get_account(gc);
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
859
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
860 g_return_if_fail(account != NULL);
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
861
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
862 err = g_new0(PurpleConnectionErrorInfo, 1);
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
863
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
864 err->type = type;
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
865 err->description = g_strdup(description);
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
866
34767
38a5613c3e26 Prepended functions private to a subsystem but used over multiple files by underscore
Ankit Vani <a@nevitus.org>
parents: 34765
diff changeset
867 _purple_account_set_current_error(account, err);
34581
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
868
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
869 purple_signal_emit(purple_accounts_get_handle(), "account-connection-error",
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
870 account, type, description);
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
871 }
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
872
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
873 static void
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
874 password_migration_cb(PurpleAccount *account)
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
875 {
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
876 /* account may be NULL (means: all) */
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
877
34582
67a520874aa9 Exposed some functions to the header files to resolve dependencies.
Ankit Vani <a@nevitus.org>
parents: 34581
diff changeset
878 purple_accounts_schedule_save();
34581
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
879 }
b4e0236019e6 Fixed more PurpleAccount stuff.
Ankit Vani <a@nevitus.org>
parents: 34580
diff changeset
880
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
881 void
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
882 purple_accounts_init(void)
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
883 {
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
884 void *handle = purple_accounts_get_handle();
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
885 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
886
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
887 purple_signal_register(handle, "account-connecting",
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
888 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
889 PURPLE_TYPE_ACCOUNT);
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
890
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
891 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
892 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
893 PURPLE_TYPE_ACCOUNT);
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
894
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
895 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
896 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
897 PURPLE_TYPE_ACCOUNT);
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
898
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
899 purple_signal_register(handle, "account-setting-info",
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
900 purple_marshal_VOID__POINTER_POINTER, G_TYPE_NONE, 2,
3d6f7d9dc21d Refactored account, buddylist, certificate to use GType and GValue instead of PurpleType and PurpleValue
Ankit Vani <a@nevitus.org>
parents: 34767
diff changeset
901 PURPLE_TYPE_ACCOUNT, G_TYPE_STRING);
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
902
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
903 purple_signal_register(handle, "account-set-info",
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
904 purple_marshal_VOID__POINTER_POINTER, G_TYPE_NONE, 2,
3d6f7d9dc21d Refactored account, buddylist, certificate to use GType and GValue instead of PurpleType and PurpleValue
Ankit Vani <a@nevitus.org>
parents: 34767
diff changeset
905 PURPLE_TYPE_ACCOUNT, G_TYPE_STRING);
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
906
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
907 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
908 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
909 PURPLE_TYPE_ACCOUNT);
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
910
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
911 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
912 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
913 PURPLE_TYPE_ACCOUNT);
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
914
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
915 purple_signal_register(handle, "account-added",
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
916 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
917 PURPLE_TYPE_ACCOUNT);
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
918
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
919 purple_signal_register(handle, "account-removed",
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
920 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
921 PURPLE_TYPE_ACCOUNT);
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
922
37679
6ff708c38c04 Add "account-status-changing" signal from instantbird
Florian Quèze <florian@instantbird.org>
parents: 37195
diff changeset
923 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
924 purple_marshal_VOID__POINTER_POINTER_POINTER,
6ff708c38c04 Add "account-status-changing" signal from instantbird
Florian Quèze <florian@instantbird.org>
parents: 37195
diff changeset
925 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
926 PURPLE_TYPE_STATUS, PURPLE_TYPE_STATUS);
6ff708c38c04 Add "account-status-changing" signal from instantbird
Florian Quèze <florian@instantbird.org>
parents: 37195
diff changeset
927
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
928 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
929 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
930 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
931 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
932
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
933 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
934 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
935 PURPLE_TYPE_ACCOUNT);
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
936
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
937 purple_signal_register(handle, "account-alias-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
938 purple_marshal_VOID__POINTER_POINTER, G_TYPE_NONE, 2,
3d6f7d9dc21d Refactored account, buddylist, certificate to use GType and GValue instead of PurpleType and PurpleValue
Ankit Vani <a@nevitus.org>
parents: 34767
diff changeset
939 PURPLE_TYPE_ACCOUNT, G_TYPE_STRING);
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
940
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
941 purple_signal_register(handle, "account-authorization-requested",
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
942 purple_marshal_INT__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
943 G_TYPE_INT, 4, PURPLE_TYPE_ACCOUNT, G_TYPE_STRING,
3d6f7d9dc21d Refactored account, buddylist, certificate to use GType and GValue instead of PurpleType and PurpleValue
Ankit Vani <a@nevitus.org>
parents: 34767
diff changeset
944 G_TYPE_STRING, G_TYPE_STRING);
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
945
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
946 purple_signal_register(handle, "account-authorization-denied",
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
947 purple_marshal_VOID__POINTER_POINTER, G_TYPE_NONE, 3,
3d6f7d9dc21d Refactored account, buddylist, certificate to use GType and GValue instead of PurpleType and PurpleValue
Ankit Vani <a@nevitus.org>
parents: 34767
diff changeset
948 PURPLE_TYPE_ACCOUNT, G_TYPE_STRING, G_TYPE_STRING);
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
949
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
950 purple_signal_register(handle, "account-authorization-granted",
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
951 purple_marshal_VOID__POINTER_POINTER, G_TYPE_NONE, 3,
3d6f7d9dc21d Refactored account, buddylist, certificate to use GType and GValue instead of PurpleType and PurpleValue
Ankit Vani <a@nevitus.org>
parents: 34767
diff changeset
952 PURPLE_TYPE_ACCOUNT, G_TYPE_STRING, G_TYPE_STRING);
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
953
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
954 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
955 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
956 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
957 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
958 PURPLE_TYPE_CONNECTION_ERROR_INFO);
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
959
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
960 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
961 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
962 PURPLE_TYPE_ACCOUNT);
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
963
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
964 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
965 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
966 PURPLE_TYPE_ACCOUNT);
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
967
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
968 purple_signal_register(handle, "account-connection-error",
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
969 purple_marshal_VOID__POINTER_INT_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
970 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
971 PURPLE_TYPE_CONNECTION_ERROR, G_TYPE_STRING);
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
972
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
973 purple_signal_connect(conn_handle, "signed-on", handle,
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
974 PURPLE_CALLBACK(signed_on_cb), NULL);
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
975 purple_signal_connect(conn_handle, "signed-off", handle,
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
976 PURPLE_CALLBACK(signed_off_cb), NULL);
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
977 purple_signal_connect(conn_handle, "connection-error", handle,
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
978 PURPLE_CALLBACK(connection_error_cb), NULL);
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
979 purple_signal_connect(purple_keyring_get_handle(), "password-migration", handle,
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
980 PURPLE_CALLBACK(password_migration_cb), NULL);
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
981
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
982 load_accounts();
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
983
40505
e2c4be9e3aa6 fix some issues that were identified while working on a flatpak build
Gary Kramlich <grim@reaperworld.com>
parents: 40441
diff changeset
984 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
985 "network-changed",
40512
05663def7b82 Fix some easy compiler warnings
Gary Kramlich <grim@reaperworld.com>
parents: 40505
diff changeset
986 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
987 }
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
988
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
989 void
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
990 purple_accounts_uninit(void)
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
991 {
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
992 gpointer handle = purple_accounts_get_handle();
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
993 if (save_timer != 0)
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
994 {
38433
361c801c4536 Remove purple_timeout_* function usage
Mike Ruprecht <cmaiku@gmail.com>
parents: 37679
diff changeset
995 g_source_remove(save_timer);
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
996 save_timer = 0;
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
997 sync_accounts();
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
998 }
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
999
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1000 for (; accounts; accounts = g_list_delete_link(accounts, accounts))
34588
1379416703af Removed purple_account_destroy function declaration, use g_object_unref() instead.
Ankit Vani <a@nevitus.org>
parents: 34582
diff changeset
1001 g_object_unref(G_OBJECT(accounts->data));
34574
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1002
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1003 purple_signals_disconnect_by_handle(handle);
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1004 purple_signals_unregister_by_instance(handle);
19850cd1b2de Begun GObjectification of PurpleAccount. Moved things around, see details.
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1005 }

mercurial