Sat, 15 Aug 2009 05:10:07 +0000
Add a purple_account_get_name_for_display function (I'm not a huge fan of that
name but didn't want to use get_display_name as that means something else for
connections).
This wants to be used in places where we need to display an identifier for the
account to the user and honor the appropriate aliases/etc.
Refs #8391
|
5865
5b358b960d7d
[gaim-migrate @ 6296]
Christian Hammond <chipx86@chipx86.com>
parents:
5842
diff
changeset
|
1 | /** |
| 5563 | 2 | * @file account.c Account API |
| 3 | * @ingroup core | |
|
20147
66f05a854eee
applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents:
20093
diff
changeset
|
4 | */ |
|
66f05a854eee
applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents:
20093
diff
changeset
|
5 | |
|
66f05a854eee
applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents:
20093
diff
changeset
|
6 | /* purple |
| 5563 | 7 | * |
| 15884 | 8 | * Purple is the legal property of its developers, whose names are too numerous |
| 8046 | 9 | * to list here. Please refer to the COPYRIGHT file distributed with this |
| 10 | * source distribution. | |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6368
diff
changeset
|
11 | * |
| 5563 | 12 | * This program is free software; you can redistribute it and/or modify |
| 13 | * it under the terms of the GNU General Public License as published by | |
| 14 | * the Free Software Foundation; either version 2 of the License, or | |
| 15 | * (at your option) any later version. | |
| 16 | * | |
| 17 | * This program is distributed in the hope that it will be useful, | |
| 18 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 19 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 20 | * GNU General Public License for more details. | |
| 21 | * | |
| 22 | * You should have received a copy of the GNU General Public License | |
| 23 | * along with this program; if not, write to the Free Software | |
|
19859
71d37b57eff2
The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
19767
diff
changeset
|
24 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
| 5563 | 25 | */ |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5870
diff
changeset
|
26 | #include "internal.h" |
| 5563 | 27 | #include "account.h" |
|
11053
6d2abb51e586
[gaim-migrate @ 12991]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11042
diff
changeset
|
28 | #include "core.h" |
|
11067
b6353889a9ba
[gaim-migrate @ 13048]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11053
diff
changeset
|
29 | #include "dbus-maybe.h" |
| 5717 | 30 | #include "debug.h" |
| 14758 | 31 | #include "network.h" |
|
7063
4bfe512a4b8c
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7015
diff
changeset
|
32 | #include "notify.h" |
| 8235 | 33 | #include "pounce.h" |
| 5563 | 34 | #include "prefs.h" |
|
10945
28bef60177e7
[gaim-migrate @ 12740]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10944
diff
changeset
|
35 | #include "privacy.h" |
|
5665
0115e8068f51
[gaim-migrate @ 6081]
Christian Hammond <chipx86@chipx86.com>
parents:
5659
diff
changeset
|
36 | #include "prpl.h" |
|
7063
4bfe512a4b8c
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7015
diff
changeset
|
37 | #include "request.h" |
|
9944
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
38 | #include "server.h" |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6368
diff
changeset
|
39 | #include "signals.h" |
|
9944
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
40 | #include "status.h" |
| 5717 | 41 | #include "util.h" |
|
10423
4663a8238def
[gaim-migrate @ 11675]
Mark Doliner <markdoliner@pidgin.im>
parents:
10418
diff
changeset
|
42 | #include "xmlnode.h" |
| 5563 | 43 | |
|
21287
c4971408eae8
Make PurpleAccount keep track of the last connection error suffered (or not, if
Will Thompson <resiak@pidgin.im>
parents:
21233
diff
changeset
|
44 | typedef struct |
|
c4971408eae8
Make PurpleAccount keep track of the last connection error suffered (or not, if
Will Thompson <resiak@pidgin.im>
parents:
21233
diff
changeset
|
45 | { |
|
21298
d0d9cfaf3fe7
Mark pointed out that PurpleConnectionErrorPair is not a very good name for the
Will Thompson <resiak@pidgin.im>
parents:
21295
diff
changeset
|
46 | PurpleConnectionErrorInfo *current_error; |
|
21287
c4971408eae8
Make PurpleAccount keep track of the last connection error suffered (or not, if
Will Thompson <resiak@pidgin.im>
parents:
21233
diff
changeset
|
47 | } PurpleAccountPrivate; |
|
c4971408eae8
Make PurpleAccount keep track of the last connection error suffered (or not, if
Will Thompson <resiak@pidgin.im>
parents:
21233
diff
changeset
|
48 | |
|
c4971408eae8
Make PurpleAccount keep track of the last connection error suffered (or not, if
Will Thompson <resiak@pidgin.im>
parents:
21233
diff
changeset
|
49 | #define PURPLE_ACCOUNT_GET_PRIVATE(account) \ |
|
c4971408eae8
Make PurpleAccount keep track of the last connection error suffered (or not, if
Will Thompson <resiak@pidgin.im>
parents:
21233
diff
changeset
|
50 | ((PurpleAccountPrivate *) (account->priv)) |
|
c4971408eae8
Make PurpleAccount keep track of the last connection error suffered (or not, if
Will Thompson <resiak@pidgin.im>
parents:
21233
diff
changeset
|
51 | |
| 15884 | 52 | /* TODO: Should use PurpleValue instead of this? What about "ui"? */ |
| 5563 | 53 | typedef struct |
| 54 | { | |
| 15884 | 55 | PurplePrefType type; |
| 5563 | 56 | |
|
5777
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
57 | char *ui; |
|
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
58 | |
| 5563 | 59 | union |
| 60 | { | |
| 61 | int integer; | |
| 62 | char *string; | |
|
20246
161dd7a7f73a
applied changes from 7a436ba53de6adebccf4e920ca62d544e13b1094
Luke Schierer <lschiere@pidgin.im>
parents:
20147
diff
changeset
|
63 | gboolean boolean; |
| 5563 | 64 | |
| 65 | } value; | |
| 66 | ||
| 15884 | 67 | } PurpleAccountSetting; |
| 5563 | 68 | |
|
15537
5d7473f14c67
The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents:
15482
diff
changeset
|
69 | typedef struct |
|
5d7473f14c67
The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents:
15482
diff
changeset
|
70 | { |
| 15884 | 71 | PurpleAccountRequestType type; |
| 72 | PurpleAccount *account; | |
|
15537
5d7473f14c67
The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents:
15482
diff
changeset
|
73 | void *ui_handle; |
|
20421
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
74 | char *user; |
|
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
75 | gpointer userdata; |
|
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
76 | PurpleAccountRequestAuthorizationCb auth_cb; |
|
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
77 | PurpleAccountRequestAuthorizationCb deny_cb; |
|
25113
eacb566127a7
Use ref-counting to prevent a crash if request-auth callbacks are called
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25079
diff
changeset
|
78 | guint ref; |
| 15884 | 79 | } PurpleAccountRequestInfo; |
| 80 | ||
| 81 | static PurpleAccountUiOps *account_ui_ops = NULL; | |
|
7015
bea9111282b3
[gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
82 | |
|
5573
633880e3f137
[gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents:
5565
diff
changeset
|
83 | static GList *accounts = NULL; |
|
10428
940d15803cad
[gaim-migrate @ 11680]
Mark Doliner <markdoliner@pidgin.im>
parents:
10427
diff
changeset
|
84 | static guint save_timer = 0; |
|
5573
633880e3f137
[gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents:
5565
diff
changeset
|
85 | static gboolean accounts_loaded = FALSE; |
| 5563 | 86 | |
|
15537
5d7473f14c67
The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents:
15482
diff
changeset
|
87 | static GList *handles = NULL; |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
88 | |
|
21314
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
89 | static void set_current_error(PurpleAccount *account, |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
90 | PurpleConnectionErrorInfo *new_err); |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
91 | |
|
10428
940d15803cad
[gaim-migrate @ 11680]
Mark Doliner <markdoliner@pidgin.im>
parents:
10427
diff
changeset
|
92 | /********************************************************************* |
|
10429
cc2f5ab7ed77
[gaim-migrate @ 11681]
Mark Doliner <markdoliner@pidgin.im>
parents:
10428
diff
changeset
|
93 | * Writing to disk * |
|
10428
940d15803cad
[gaim-migrate @ 11680]
Mark Doliner <markdoliner@pidgin.im>
parents:
10427
diff
changeset
|
94 | *********************************************************************/ |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
95 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
96 | static void |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
97 | setting_to_xmlnode(gpointer key, gpointer value, gpointer user_data) |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
98 | { |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
99 | const char *name; |
| 15884 | 100 | PurpleAccountSetting *setting; |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
101 | xmlnode *node, *child; |
|
27116
19dff7b3ed0f
A patch from Scott Wolchok to replace snprintf() with g_snprintf() and
Richard Laager <rlaager@pidgin.im>
parents:
26986
diff
changeset
|
102 | char buf[21]; |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
103 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
104 | name = (const char *)key; |
| 15884 | 105 | setting = (PurpleAccountSetting *)value; |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
106 | node = (xmlnode *)user_data; |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
107 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
108 | child = xmlnode_new_child(node, "setting"); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
109 | xmlnode_set_attrib(child, "name", name); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
110 | |
| 15884 | 111 | if (setting->type == PURPLE_PREF_INT) { |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
112 | xmlnode_set_attrib(child, "type", "int"); |
|
27116
19dff7b3ed0f
A patch from Scott Wolchok to replace snprintf() with g_snprintf() and
Richard Laager <rlaager@pidgin.im>
parents:
26986
diff
changeset
|
113 | g_snprintf(buf, sizeof(buf), "%d", setting->value.integer); |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
114 | xmlnode_insert_data(child, buf, -1); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
115 | } |
| 15884 | 116 | else if (setting->type == PURPLE_PREF_STRING && setting->value.string != NULL) { |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
117 | xmlnode_set_attrib(child, "type", "string"); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
118 | xmlnode_insert_data(child, setting->value.string, -1); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
119 | } |
| 15884 | 120 | else if (setting->type == PURPLE_PREF_BOOLEAN) { |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
121 | xmlnode_set_attrib(child, "type", "bool"); |
|
27116
19dff7b3ed0f
A patch from Scott Wolchok to replace snprintf() with g_snprintf() and
Richard Laager <rlaager@pidgin.im>
parents:
26986
diff
changeset
|
122 | g_snprintf(buf, sizeof(buf), "%d", setting->value.boolean); |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
123 | xmlnode_insert_data(child, buf, -1); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
124 | } |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
125 | } |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
126 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
127 | static void |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
128 | ui_setting_to_xmlnode(gpointer key, gpointer value, gpointer user_data) |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
129 | { |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
130 | const char *ui; |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
131 | GHashTable *table; |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
132 | xmlnode *node, *child; |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
133 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
134 | ui = (const char *)key; |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
135 | table = (GHashTable *)value; |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
136 | node = (xmlnode *)user_data; |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
137 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
138 | if (g_hash_table_size(table) > 0) |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
139 | { |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
140 | child = xmlnode_new_child(node, "settings"); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
141 | xmlnode_set_attrib(child, "ui", ui); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
142 | g_hash_table_foreach(table, setting_to_xmlnode, child); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
143 | } |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
144 | } |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
145 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
146 | static xmlnode * |
| 15884 | 147 | status_attr_to_xmlnode(const PurpleStatus *status, const PurpleStatusType *type, const PurpleStatusAttr *attr) |
|
11249
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
148 | { |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
149 | xmlnode *node; |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
150 | const char *id; |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
151 | char *value = NULL; |
| 15884 | 152 | PurpleStatusAttr *default_attr; |
| 153 | PurpleValue *default_value; | |
| 154 | PurpleType attr_type; | |
| 155 | PurpleValue *attr_value; | |
| 156 | ||
| 157 | id = purple_status_attr_get_id(attr); | |
|
11249
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
158 | g_return_val_if_fail(id, NULL); |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
159 | |
| 15884 | 160 | attr_value = purple_status_get_attr_value(status, id); |
|
11249
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
161 | g_return_val_if_fail(attr_value, NULL); |
| 15884 | 162 | attr_type = purple_value_get_type(attr_value); |
|
11249
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
163 | |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
164 | /* |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
165 | * If attr_value is a different type than it should be |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
166 | * then don't write it to the file. |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
167 | */ |
| 15884 | 168 | default_attr = purple_status_type_get_attr(type, id); |
| 169 | default_value = purple_status_attr_get_value(default_attr); | |
| 170 | if (attr_type != purple_value_get_type(default_value)) | |
|
11249
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
171 | return NULL; |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
172 | |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
173 | /* |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
174 | * If attr_value is the same as the default for this status |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
175 | * then there is no need to write it to the file. |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
176 | */ |
| 15884 | 177 | if (attr_type == PURPLE_TYPE_STRING) |
|
11249
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
178 | { |
| 15884 | 179 | const char *string_value = purple_value_get_string(attr_value); |
| 180 | const char *default_string_value = purple_value_get_string(default_value); | |
|
25859
b42be7bb9dac
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents:
25140
diff
changeset
|
181 | if (purple_strequal(string_value, default_string_value)) |
|
11249
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
182 | return NULL; |
| 15884 | 183 | value = g_strdup(purple_value_get_string(attr_value)); |
|
11249
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
184 | } |
| 15884 | 185 | else if (attr_type == PURPLE_TYPE_INT) |
|
11249
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
186 | { |
| 15884 | 187 | int int_value = purple_value_get_int(attr_value); |
| 188 | if (int_value == purple_value_get_int(default_value)) | |
|
11249
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
189 | return NULL; |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
190 | value = g_strdup_printf("%d", int_value); |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
191 | } |
| 15884 | 192 | else if (attr_type == PURPLE_TYPE_BOOLEAN) |
|
11249
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
193 | { |
| 15884 | 194 | gboolean boolean_value = purple_value_get_boolean(attr_value); |
| 195 | if (boolean_value == purple_value_get_boolean(default_value)) | |
|
11249
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
196 | return NULL; |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
197 | value = g_strdup(boolean_value ? |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
198 | "true" : "false"); |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
199 | } |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
200 | else |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
201 | { |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
202 | return NULL; |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
203 | } |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
204 | |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
205 | g_return_val_if_fail(value, NULL); |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
206 | |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
207 | node = xmlnode_new("attribute"); |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
208 | |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
209 | xmlnode_set_attrib(node, "id", id); |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
210 | xmlnode_set_attrib(node, "value", value); |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
211 | |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
212 | g_free(value); |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
213 | |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
214 | return node; |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
215 | } |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
216 | |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
217 | static xmlnode * |
| 15884 | 218 | status_attrs_to_xmlnode(const PurpleStatus *status) |
|
11249
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
219 | { |
| 15884 | 220 | PurpleStatusType *type = purple_status_get_type(status); |
|
11249
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
221 | xmlnode *node, *child; |
|
18190
bcf28ef7e8ff
Re-fix the DBus list handling code by killing const GList* / const GSList*
Richard Laager <rlaager@pidgin.im>
parents:
18122
diff
changeset
|
222 | GList *attrs, *attr; |
|
11249
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
223 | |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
224 | node = xmlnode_new("attributes"); |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
225 | |
| 15884 | 226 | attrs = purple_status_type_get_attrs(type); |
|
11249
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
227 | for (attr = attrs; attr != NULL; attr = attr->next) |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
228 | { |
| 15884 | 229 | child = status_attr_to_xmlnode(status, type, (const PurpleStatusAttr *)attr->data); |
|
11249
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
230 | if (child) |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
231 | xmlnode_insert_child(node, child); |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
232 | } |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
233 | |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
234 | return node; |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
235 | } |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
236 | |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
237 | static xmlnode * |
| 15884 | 238 | status_to_xmlnode(const PurpleStatus *status) |
|
10738
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
239 | { |
|
11249
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
240 | xmlnode *node, *child; |
|
10738
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
241 | |
|
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
242 | node = xmlnode_new("status"); |
| 15884 | 243 | xmlnode_set_attrib(node, "type", purple_status_get_id(status)); |
| 244 | if (purple_status_get_name(status) != NULL) | |
| 245 | xmlnode_set_attrib(node, "name", purple_status_get_name(status)); | |
| 246 | xmlnode_set_attrib(node, "active", purple_status_is_active(status) ? "true" : "false"); | |
|
10738
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
247 | |
|
11249
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
248 | child = status_attrs_to_xmlnode(status); |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
249 | xmlnode_insert_child(node, child); |
|
10738
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
250 | |
|
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
251 | return node; |
|
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
252 | } |
|
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
253 | |
|
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
254 | static xmlnode * |
| 15884 | 255 | statuses_to_xmlnode(const PurplePresence *presence) |
|
10738
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
256 | { |
|
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
257 | xmlnode *node, *child; |
|
25445
b36f23e05c50
Thomas Gibson-Robinson noticed that the "saveable" attribute of a status type
Daniel Atallah <datallah@pidgin.im>
parents:
25113
diff
changeset
|
258 | GList *statuses; |
|
b36f23e05c50
Thomas Gibson-Robinson noticed that the "saveable" attribute of a status type
Daniel Atallah <datallah@pidgin.im>
parents:
25113
diff
changeset
|
259 | PurpleStatus *status; |
|
10738
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
260 | |
|
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
261 | node = xmlnode_new("statuses"); |
|
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
262 | |
| 15884 | 263 | statuses = purple_presence_get_statuses(presence); |
|
25445
b36f23e05c50
Thomas Gibson-Robinson noticed that the "saveable" attribute of a status type
Daniel Atallah <datallah@pidgin.im>
parents:
25113
diff
changeset
|
264 | for (; statuses != NULL; statuses = statuses->next) |
|
10738
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
265 | { |
|
25445
b36f23e05c50
Thomas Gibson-Robinson noticed that the "saveable" attribute of a status type
Daniel Atallah <datallah@pidgin.im>
parents:
25113
diff
changeset
|
266 | status = statuses->data; |
|
b36f23e05c50
Thomas Gibson-Robinson noticed that the "saveable" attribute of a status type
Daniel Atallah <datallah@pidgin.im>
parents:
25113
diff
changeset
|
267 | if (purple_status_type_is_saveable(purple_status_get_type(status))) |
|
b36f23e05c50
Thomas Gibson-Robinson noticed that the "saveable" attribute of a status type
Daniel Atallah <datallah@pidgin.im>
parents:
25113
diff
changeset
|
268 | { |
|
b36f23e05c50
Thomas Gibson-Robinson noticed that the "saveable" attribute of a status type
Daniel Atallah <datallah@pidgin.im>
parents:
25113
diff
changeset
|
269 | child = status_to_xmlnode(status); |
|
b36f23e05c50
Thomas Gibson-Robinson noticed that the "saveable" attribute of a status type
Daniel Atallah <datallah@pidgin.im>
parents:
25113
diff
changeset
|
270 | xmlnode_insert_child(node, child); |
|
b36f23e05c50
Thomas Gibson-Robinson noticed that the "saveable" attribute of a status type
Daniel Atallah <datallah@pidgin.im>
parents:
25113
diff
changeset
|
271 | } |
|
10738
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
272 | } |
|
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
273 | |
|
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
274 | return node; |
|
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
275 | } |
|
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
276 | |
|
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
277 | static xmlnode * |
| 15884 | 278 | proxy_settings_to_xmlnode(PurpleProxyInfo *proxy_info) |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
279 | { |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
280 | xmlnode *node, *child; |
| 15884 | 281 | PurpleProxyType proxy_type; |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
282 | const char *value; |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
283 | int int_value; |
|
27116
19dff7b3ed0f
A patch from Scott Wolchok to replace snprintf() with g_snprintf() and
Richard Laager <rlaager@pidgin.im>
parents:
26986
diff
changeset
|
284 | char buf[21]; |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
285 | |
| 15884 | 286 | proxy_type = purple_proxy_info_get_type(proxy_info); |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
287 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
288 | node = xmlnode_new("proxy"); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
289 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
290 | child = xmlnode_new_child(node, "type"); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
291 | xmlnode_insert_data(child, |
| 15884 | 292 | (proxy_type == PURPLE_PROXY_USE_GLOBAL ? "global" : |
| 293 | proxy_type == PURPLE_PROXY_NONE ? "none" : | |
| 294 | proxy_type == PURPLE_PROXY_HTTP ? "http" : | |
| 295 | proxy_type == PURPLE_PROXY_SOCKS4 ? "socks4" : | |
| 296 | proxy_type == PURPLE_PROXY_SOCKS5 ? "socks5" : | |
| 297 | proxy_type == PURPLE_PROXY_USE_ENVVAR ? "envvar" : "unknown"), -1); | |
| 298 | ||
| 299 | if ((value = purple_proxy_info_get_host(proxy_info)) != NULL) | |
|
15041
18a6f6cdce33
[gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents:
15030
diff
changeset
|
300 | { |
|
18a6f6cdce33
[gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents:
15030
diff
changeset
|
301 | child = xmlnode_new_child(node, "host"); |
|
18a6f6cdce33
[gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents:
15030
diff
changeset
|
302 | xmlnode_insert_data(child, value, -1); |
|
18a6f6cdce33
[gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents:
15030
diff
changeset
|
303 | } |
|
18a6f6cdce33
[gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents:
15030
diff
changeset
|
304 | |
| 15884 | 305 | if ((int_value = purple_proxy_info_get_port(proxy_info)) != 0) |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
306 | { |
|
27116
19dff7b3ed0f
A patch from Scott Wolchok to replace snprintf() with g_snprintf() and
Richard Laager <rlaager@pidgin.im>
parents:
26986
diff
changeset
|
307 | g_snprintf(buf, sizeof(buf), "%d", int_value); |
|
15041
18a6f6cdce33
[gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents:
15030
diff
changeset
|
308 | child = xmlnode_new_child(node, "port"); |
|
18a6f6cdce33
[gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents:
15030
diff
changeset
|
309 | xmlnode_insert_data(child, buf, -1); |
|
18a6f6cdce33
[gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents:
15030
diff
changeset
|
310 | } |
|
18a6f6cdce33
[gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents:
15030
diff
changeset
|
311 | |
| 15884 | 312 | if ((value = purple_proxy_info_get_username(proxy_info)) != NULL) |
|
15041
18a6f6cdce33
[gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents:
15030
diff
changeset
|
313 | { |
|
18a6f6cdce33
[gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents:
15030
diff
changeset
|
314 | child = xmlnode_new_child(node, "username"); |
|
18a6f6cdce33
[gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents:
15030
diff
changeset
|
315 | xmlnode_insert_data(child, value, -1); |
|
18a6f6cdce33
[gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents:
15030
diff
changeset
|
316 | } |
|
18a6f6cdce33
[gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents:
15030
diff
changeset
|
317 | |
| 15884 | 318 | if ((value = purple_proxy_info_get_password(proxy_info)) != NULL) |
|
15041
18a6f6cdce33
[gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents:
15030
diff
changeset
|
319 | { |
|
18a6f6cdce33
[gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents:
15030
diff
changeset
|
320 | child = xmlnode_new_child(node, "password"); |
|
18a6f6cdce33
[gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents:
15030
diff
changeset
|
321 | xmlnode_insert_data(child, value, -1); |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
322 | } |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
323 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
324 | return node; |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
325 | } |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
326 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
327 | static xmlnode * |
|
21314
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
328 | current_error_to_xmlnode(PurpleConnectionErrorInfo *err) |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
329 | { |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
330 | xmlnode *node, *child; |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
331 | char type_str[3]; |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
332 | |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
333 | node = xmlnode_new("current_error"); |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
334 | |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
335 | if(err == NULL) |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
336 | return node; |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
337 | |
|
21961
8ca368922eba
Don't bother making transient connection errors persist across a restart.
Will Thompson <resiak@pidgin.im>
parents:
21928
diff
changeset
|
338 | /* It doesn't make sense to have transient errors persist across a |
|
8ca368922eba
Don't bother making transient connection errors persist across a restart.
Will Thompson <resiak@pidgin.im>
parents:
21928
diff
changeset
|
339 | * restart. |
|
8ca368922eba
Don't bother making transient connection errors persist across a restart.
Will Thompson <resiak@pidgin.im>
parents:
21928
diff
changeset
|
340 | */ |
|
8ca368922eba
Don't bother making transient connection errors persist across a restart.
Will Thompson <resiak@pidgin.im>
parents:
21928
diff
changeset
|
341 | if(!purple_connection_error_is_fatal (err->type)) |
|
8ca368922eba
Don't bother making transient connection errors persist across a restart.
Will Thompson <resiak@pidgin.im>
parents:
21928
diff
changeset
|
342 | return node; |
|
8ca368922eba
Don't bother making transient connection errors persist across a restart.
Will Thompson <resiak@pidgin.im>
parents:
21928
diff
changeset
|
343 | |
|
21314
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
344 | child = xmlnode_new_child(node, "type"); |
|
27116
19dff7b3ed0f
A patch from Scott Wolchok to replace snprintf() with g_snprintf() and
Richard Laager <rlaager@pidgin.im>
parents:
26986
diff
changeset
|
345 | g_snprintf(type_str, sizeof(type_str), "%u", err->type); |
|
21314
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
346 | xmlnode_insert_data(child, type_str, -1); |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
347 | |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
348 | child = xmlnode_new_child(node, "description"); |
|
21928
075718340ddf
Ensure that an error's description actually is UTF-8 before writing it out to
Will Thompson <resiak@pidgin.im>
parents:
21907
diff
changeset
|
349 | if(err->description) { |
|
075718340ddf
Ensure that an error's description actually is UTF-8 before writing it out to
Will Thompson <resiak@pidgin.im>
parents:
21907
diff
changeset
|
350 | char *utf8ized = purple_utf8_try_convert(err->description); |
|
075718340ddf
Ensure that an error's description actually is UTF-8 before writing it out to
Will Thompson <resiak@pidgin.im>
parents:
21907
diff
changeset
|
351 | if(utf8ized == NULL) |
|
075718340ddf
Ensure that an error's description actually is UTF-8 before writing it out to
Will Thompson <resiak@pidgin.im>
parents:
21907
diff
changeset
|
352 | utf8ized = purple_utf8_salvage(err->description); |
|
075718340ddf
Ensure that an error's description actually is UTF-8 before writing it out to
Will Thompson <resiak@pidgin.im>
parents:
21907
diff
changeset
|
353 | xmlnode_insert_data(child, utf8ized, -1); |
|
075718340ddf
Ensure that an error's description actually is UTF-8 before writing it out to
Will Thompson <resiak@pidgin.im>
parents:
21907
diff
changeset
|
354 | g_free(utf8ized); |
|
075718340ddf
Ensure that an error's description actually is UTF-8 before writing it out to
Will Thompson <resiak@pidgin.im>
parents:
21907
diff
changeset
|
355 | } |
|
21314
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
356 | |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
357 | return node; |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
358 | } |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
359 | |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
360 | static xmlnode * |
| 15884 | 361 | account_to_xmlnode(PurpleAccount *account) |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
362 | { |
|
21314
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
363 | PurpleAccountPrivate *priv = PURPLE_ACCOUNT_GET_PRIVATE(account); |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
364 | |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
365 | xmlnode *node, *child; |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
366 | const char *tmp; |
| 15884 | 367 | PurplePresence *presence; |
| 368 | PurpleProxyInfo *proxy_info; | |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
369 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
370 | node = xmlnode_new("account"); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
371 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
372 | child = xmlnode_new_child(node, "protocol"); |
| 15884 | 373 | xmlnode_insert_data(child, purple_account_get_protocol_id(account), -1); |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
374 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
375 | child = xmlnode_new_child(node, "name"); |
| 15884 | 376 | xmlnode_insert_data(child, purple_account_get_username(account), -1); |
| 377 | ||
| 378 | if (purple_account_get_remember_password(account) && | |
| 379 | ((tmp = purple_account_get_password(account)) != NULL)) | |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
380 | { |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
381 | child = xmlnode_new_child(node, "password"); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
382 | xmlnode_insert_data(child, tmp, -1); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
383 | } |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
384 | |
| 15884 | 385 | if ((tmp = purple_account_get_alias(account)) != NULL) |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
386 | { |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
387 | child = xmlnode_new_child(node, "alias"); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
388 | xmlnode_insert_data(child, tmp, -1); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
389 | } |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
390 | |
| 15884 | 391 | if ((presence = purple_account_get_presence(account)) != NULL) |
|
10738
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
392 | { |
|
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
393 | child = statuses_to_xmlnode(presence); |
|
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
394 | xmlnode_insert_child(node, child); |
|
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
395 | } |
|
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
396 | |
| 15884 | 397 | if ((tmp = purple_account_get_user_info(account)) != NULL) |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
398 | { |
| 15884 | 399 | /* TODO: Do we need to call purple_str_strip_char(tmp, '\r') here? */ |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
400 | child = xmlnode_new_child(node, "userinfo"); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
401 | xmlnode_insert_data(child, tmp, -1); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
402 | } |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
403 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
404 | if (g_hash_table_size(account->settings) > 0) |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
405 | { |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
406 | child = xmlnode_new_child(node, "settings"); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
407 | g_hash_table_foreach(account->settings, setting_to_xmlnode, child); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
408 | } |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
409 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
410 | if (g_hash_table_size(account->ui_settings) > 0) |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
411 | { |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
412 | g_hash_table_foreach(account->ui_settings, ui_setting_to_xmlnode, node); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
413 | } |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
414 | |
| 15884 | 415 | if ((proxy_info = purple_account_get_proxy_info(account)) != NULL) |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
416 | { |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
417 | child = proxy_settings_to_xmlnode(proxy_info); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
418 | xmlnode_insert_child(node, child); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
419 | } |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
420 | |
|
21314
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
421 | child = current_error_to_xmlnode(priv->current_error); |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
422 | xmlnode_insert_child(node, child); |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
423 | |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
424 | return node; |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
425 | } |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
426 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
427 | static xmlnode * |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
428 | accounts_to_xmlnode(void) |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
429 | { |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
430 | xmlnode *node, *child; |
|
18122
9bf9970c1b6a
disapproval of revision '2d8ea56b90971e7851442d96b7d74ecb4f052126'
Richard Laager <rlaager@pidgin.im>
parents:
18121
diff
changeset
|
431 | GList *cur; |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
432 | |
|
10760
36ed17d3ad9d
[gaim-migrate @ 12363]
Mark Doliner <markdoliner@pidgin.im>
parents:
10758
diff
changeset
|
433 | node = xmlnode_new("account"); |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
434 | xmlnode_set_attrib(node, "version", "1.0"); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
435 | |
| 15884 | 436 | for (cur = purple_accounts_get_all(); cur != NULL; cur = cur->next) |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
437 | { |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
438 | child = account_to_xmlnode(cur->data); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
439 | xmlnode_insert_child(node, child); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
440 | } |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
441 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
442 | return node; |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
443 | } |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
444 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
445 | static void |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
446 | sync_accounts(void) |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
447 | { |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
448 | xmlnode *node; |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
449 | char *data; |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
450 | |
|
10428
940d15803cad
[gaim-migrate @ 11680]
Mark Doliner <markdoliner@pidgin.im>
parents:
10427
diff
changeset
|
451 | if (!accounts_loaded) |
|
940d15803cad
[gaim-migrate @ 11680]
Mark Doliner <markdoliner@pidgin.im>
parents:
10427
diff
changeset
|
452 | { |
| 15884 | 453 | purple_debug_error("account", "Attempted to save accounts before " |
|
10443
aa7dcc1c796a
[gaim-migrate @ 11703]
Mark Doliner <markdoliner@pidgin.im>
parents:
10429
diff
changeset
|
454 | "they were read!\n"); |
|
aa7dcc1c796a
[gaim-migrate @ 11703]
Mark Doliner <markdoliner@pidgin.im>
parents:
10429
diff
changeset
|
455 | return; |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
456 | } |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
457 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
458 | node = accounts_to_xmlnode(); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
459 | data = xmlnode_to_formatted_str(node, NULL); |
| 15884 | 460 | purple_util_write_data_to_file("accounts.xml", data, -1); |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
461 | g_free(data); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
462 | xmlnode_free(node); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
463 | } |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
464 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
465 | static gboolean |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
466 | save_cb(gpointer data) |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
467 | { |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
468 | sync_accounts(); |
|
10428
940d15803cad
[gaim-migrate @ 11680]
Mark Doliner <markdoliner@pidgin.im>
parents:
10427
diff
changeset
|
469 | save_timer = 0; |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
470 | return FALSE; |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
471 | } |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
472 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
473 | static void |
|
22104
56970903b8e9
Probe for -Wstrict-prototypes to get some more warnings. I then cleaned up
Richard Laager <rlaager@pidgin.im>
parents:
22055
diff
changeset
|
474 | schedule_accounts_save(void) |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
475 | { |
|
10428
940d15803cad
[gaim-migrate @ 11680]
Mark Doliner <markdoliner@pidgin.im>
parents:
10427
diff
changeset
|
476 | if (save_timer == 0) |
|
18068
b6554e3c8224
merge of '1442df274a24edc9a31194327bd00dfbcf478720'
Richard Laager <rlaager@pidgin.im>
diff
changeset
|
477 | save_timer = purple_timeout_add_seconds(5, save_cb, NULL); |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
478 | } |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
479 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
480 | |
|
10428
940d15803cad
[gaim-migrate @ 11680]
Mark Doliner <markdoliner@pidgin.im>
parents:
10427
diff
changeset
|
481 | /********************************************************************* |
|
940d15803cad
[gaim-migrate @ 11680]
Mark Doliner <markdoliner@pidgin.im>
parents:
10427
diff
changeset
|
482 | * Reading from disk * |
|
940d15803cad
[gaim-migrate @ 11680]
Mark Doliner <markdoliner@pidgin.im>
parents:
10427
diff
changeset
|
483 | *********************************************************************/ |
|
27562
2e34a10e7135
Migrate Yahoo! JAPAN accounts to the new prpl (in theory). This also adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
27497
diff
changeset
|
484 | static void |
|
2e34a10e7135
Migrate Yahoo! JAPAN accounts to the new prpl (in theory). This also adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
27497
diff
changeset
|
485 | migrate_yahoo_japan(PurpleAccount *account) |
|
2e34a10e7135
Migrate Yahoo! JAPAN accounts to the new prpl (in theory). This also adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
27497
diff
changeset
|
486 | { |
|
2e34a10e7135
Migrate Yahoo! JAPAN accounts to the new prpl (in theory). This also adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
27497
diff
changeset
|
487 | /* detect a Yahoo! JAPAN account that existed prior to 2.6.0 and convert it |
|
2e34a10e7135
Migrate Yahoo! JAPAN accounts to the new prpl (in theory). This also adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
27497
diff
changeset
|
488 | * to use the new prpl-yahoojp. Also remove the account-specific settings |
|
2e34a10e7135
Migrate Yahoo! JAPAN accounts to the new prpl (in theory). This also adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
27497
diff
changeset
|
489 | * we no longer need */ |
|
2e34a10e7135
Migrate Yahoo! JAPAN accounts to the new prpl (in theory). This also adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
27497
diff
changeset
|
490 | |
|
2e34a10e7135
Migrate Yahoo! JAPAN accounts to the new prpl (in theory). This also adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
27497
diff
changeset
|
491 | if(purple_strequal(purple_account_get_protocol_id(account), "prpl-yahoo")) { |
|
2e34a10e7135
Migrate Yahoo! JAPAN accounts to the new prpl (in theory). This also adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
27497
diff
changeset
|
492 | if(purple_account_get_bool(account, "yahoojp", FALSE)) { |
|
2e34a10e7135
Migrate Yahoo! JAPAN accounts to the new prpl (in theory). This also adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
27497
diff
changeset
|
493 | const char *serverjp = purple_account_get_string(account, "serverjp", NULL); |
|
2e34a10e7135
Migrate Yahoo! JAPAN accounts to the new prpl (in theory). This also adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
27497
diff
changeset
|
494 | const char *xferjp_host = purple_account_get_string(account, "xferjp_host", NULL); |
|
2e34a10e7135
Migrate Yahoo! JAPAN accounts to the new prpl (in theory). This also adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
27497
diff
changeset
|
495 | |
|
2e34a10e7135
Migrate Yahoo! JAPAN accounts to the new prpl (in theory). This also adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
27497
diff
changeset
|
496 | g_return_if_fail(serverjp != NULL); |
|
2e34a10e7135
Migrate Yahoo! JAPAN accounts to the new prpl (in theory). This also adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
27497
diff
changeset
|
497 | g_return_if_fail(xferjp_host != NULL); |
|
2e34a10e7135
Migrate Yahoo! JAPAN accounts to the new prpl (in theory). This also adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
27497
diff
changeset
|
498 | |
|
2e34a10e7135
Migrate Yahoo! JAPAN accounts to the new prpl (in theory). This also adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
27497
diff
changeset
|
499 | purple_account_set_string(account, "server", serverjp); |
|
2e34a10e7135
Migrate Yahoo! JAPAN accounts to the new prpl (in theory). This also adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
27497
diff
changeset
|
500 | purple_account_set_string(account, "xfer_host", xferjp_host); |
|
2e34a10e7135
Migrate Yahoo! JAPAN accounts to the new prpl (in theory). This also adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
27497
diff
changeset
|
501 | |
|
2e34a10e7135
Migrate Yahoo! JAPAN accounts to the new prpl (in theory). This also adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
27497
diff
changeset
|
502 | purple_account_set_protocol_id(account, "prpl-yahoojp"); |
|
2e34a10e7135
Migrate Yahoo! JAPAN accounts to the new prpl (in theory). This also adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
27497
diff
changeset
|
503 | } |
|
2e34a10e7135
Migrate Yahoo! JAPAN accounts to the new prpl (in theory). This also adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
27497
diff
changeset
|
504 | |
|
2e34a10e7135
Migrate Yahoo! JAPAN accounts to the new prpl (in theory). This also adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
27497
diff
changeset
|
505 | /* these should always be nuked */ |
|
27563
3f38f3d8b8ba
I forgot to remove the old bool setting for Yahoo! JAPAN.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
27562
diff
changeset
|
506 | purple_account_remove_setting(account, "yahoojp"); |
|
27562
2e34a10e7135
Migrate Yahoo! JAPAN accounts to the new prpl (in theory). This also adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
27497
diff
changeset
|
507 | purple_account_remove_setting(account, "serverjp"); |
|
2e34a10e7135
Migrate Yahoo! JAPAN accounts to the new prpl (in theory). This also adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
27497
diff
changeset
|
508 | purple_account_remove_setting(account, "xferjp_host"); |
|
2e34a10e7135
Migrate Yahoo! JAPAN accounts to the new prpl (in theory). This also adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
27497
diff
changeset
|
509 | |
|
2e34a10e7135
Migrate Yahoo! JAPAN accounts to the new prpl (in theory). This also adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
27497
diff
changeset
|
510 | } |
|
2e34a10e7135
Migrate Yahoo! JAPAN accounts to the new prpl (in theory). This also adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
27497
diff
changeset
|
511 | |
|
2e34a10e7135
Migrate Yahoo! JAPAN accounts to the new prpl (in theory). This also adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
27497
diff
changeset
|
512 | return; |
|
2e34a10e7135
Migrate Yahoo! JAPAN accounts to the new prpl (in theory). This also adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
27497
diff
changeset
|
513 | } |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
514 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
515 | static void |
| 15884 | 516 | parse_settings(xmlnode *node, PurpleAccount *account) |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
517 | { |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
518 | const char *ui; |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
519 | xmlnode *child; |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
520 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
521 | /* Get the UI string, if these are UI settings */ |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
522 | ui = xmlnode_get_attrib(node, "ui"); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
523 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
524 | /* Read settings, one by one */ |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
525 | for (child = xmlnode_get_child(node, "setting"); child != NULL; |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
526 | child = xmlnode_get_next_twin(child)) |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
527 | { |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
528 | const char *name, *str_type; |
| 15884 | 529 | PurplePrefType type; |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
530 | char *data; |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
531 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
532 | name = xmlnode_get_attrib(child, "name"); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
533 | if (name == NULL) |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
534 | /* Ignore this setting */ |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
535 | continue; |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
536 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
537 | str_type = xmlnode_get_attrib(child, "type"); |
|
10448
4415ffba12e9
[gaim-migrate @ 11713]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
538 | if (str_type == NULL) |
|
4415ffba12e9
[gaim-migrate @ 11713]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
539 | /* Ignore this setting */ |
|
4415ffba12e9
[gaim-migrate @ 11713]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
540 | continue; |
|
4415ffba12e9
[gaim-migrate @ 11713]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
541 | |
|
25859
b42be7bb9dac
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents:
25140
diff
changeset
|
542 | if (purple_strequal(str_type, "string")) |
| 15884 | 543 | type = PURPLE_PREF_STRING; |
|
25859
b42be7bb9dac
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents:
25140
diff
changeset
|
544 | else if (purple_strequal(str_type, "int")) |
| 15884 | 545 | type = PURPLE_PREF_INT; |
|
25859
b42be7bb9dac
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents:
25140
diff
changeset
|
546 | else if (purple_strequal(str_type, "bool")) |
| 15884 | 547 | type = PURPLE_PREF_BOOLEAN; |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
548 | else |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
549 | /* Ignore this setting */ |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
550 | continue; |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
551 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
552 | data = xmlnode_get_data(child); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
553 | if (data == NULL) |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
554 | /* Ignore this setting */ |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
555 | continue; |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
556 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
557 | if (ui == NULL) |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
558 | { |
| 15884 | 559 | if (type == PURPLE_PREF_STRING) |
| 560 | purple_account_set_string(account, name, data); | |
| 561 | else if (type == PURPLE_PREF_INT) | |
| 562 | purple_account_set_int(account, name, atoi(data)); | |
| 563 | else if (type == PURPLE_PREF_BOOLEAN) | |
| 564 | purple_account_set_bool(account, name, | |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
565 | (*data == '0' ? FALSE : TRUE)); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
566 | } else { |
| 15884 | 567 | if (type == PURPLE_PREF_STRING) |
| 568 | purple_account_set_ui_string(account, ui, name, data); | |
| 569 | else if (type == PURPLE_PREF_INT) | |
| 570 | purple_account_set_ui_int(account, ui, name, atoi(data)); | |
| 571 | else if (type == PURPLE_PREF_BOOLEAN) | |
| 572 | purple_account_set_ui_bool(account, ui, name, | |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
573 | (*data == '0' ? FALSE : TRUE)); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
574 | } |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
575 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
576 | g_free(data); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
577 | } |
|
27562
2e34a10e7135
Migrate Yahoo! JAPAN accounts to the new prpl (in theory). This also adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
27497
diff
changeset
|
578 | |
|
2e34a10e7135
Migrate Yahoo! JAPAN accounts to the new prpl (in theory). This also adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
27497
diff
changeset
|
579 | /* we do this here because we need access to account settings to determine |
|
2e34a10e7135
Migrate Yahoo! JAPAN accounts to the new prpl (in theory). This also adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
27497
diff
changeset
|
580 | * if we can/should migrate an old Yahoo! JAPAN account */ |
|
2e34a10e7135
Migrate Yahoo! JAPAN accounts to the new prpl (in theory). This also adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
27497
diff
changeset
|
581 | migrate_yahoo_japan(account); |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
582 | } |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
583 | |
|
11249
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
584 | static GList * |
| 15884 | 585 | parse_status_attrs(xmlnode *node, PurpleStatus *status) |
|
11249
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
586 | { |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
587 | GList *list = NULL; |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
588 | xmlnode *child; |
| 15884 | 589 | PurpleValue *attr_value; |
|
11249
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
590 | |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
591 | for (child = xmlnode_get_child(node, "attribute"); child != NULL; |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
592 | child = xmlnode_get_next_twin(child)) |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
593 | { |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
594 | const char *id = xmlnode_get_attrib(child, "id"); |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
595 | const char *value = xmlnode_get_attrib(child, "value"); |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
596 | |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
597 | if (!id || !*id || !value || !*value) |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
598 | continue; |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
599 | |
| 15884 | 600 | attr_value = purple_status_get_attr_value(status, id); |
|
11249
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
601 | if (!attr_value) |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
602 | continue; |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
603 | |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
604 | list = g_list_append(list, (char *)id); |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
605 | |
| 15884 | 606 | switch (purple_value_get_type(attr_value)) |
|
11249
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
607 | { |
| 15884 | 608 | case PURPLE_TYPE_STRING: |
|
11249
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
609 | list = g_list_append(list, (char *)value); |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
610 | break; |
| 15884 | 611 | case PURPLE_TYPE_INT: |
| 612 | case PURPLE_TYPE_BOOLEAN: | |
|
11249
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
613 | { |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
614 | int v; |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
615 | if (sscanf(value, "%d", &v) == 1) |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
616 | list = g_list_append(list, GINT_TO_POINTER(v)); |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
617 | else |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
618 | list = g_list_remove(list, id); |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
619 | break; |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
620 | } |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
621 | default: |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
622 | break; |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
623 | } |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
624 | } |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
625 | |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
626 | return list; |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
627 | } |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
628 | |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
629 | static void |
| 15884 | 630 | parse_status(xmlnode *node, PurpleAccount *account) |
|
10738
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
631 | { |
|
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
632 | gboolean active = FALSE; |
|
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
633 | const char *data; |
|
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
634 | const char *type; |
|
11249
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
635 | xmlnode *child; |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
636 | GList *attrs = NULL; |
|
10738
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
637 | |
|
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
638 | /* Get the active/inactive state */ |
|
11075
d93c3b97203e
[gaim-migrate @ 13085]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11067
diff
changeset
|
639 | data = xmlnode_get_attrib(node, "active"); |
|
11076
f6c4835e68ee
[gaim-migrate @ 13086]
Mark Doliner <markdoliner@pidgin.im>
parents:
11075
diff
changeset
|
640 | if (data == NULL) |
|
f6c4835e68ee
[gaim-migrate @ 13086]
Mark Doliner <markdoliner@pidgin.im>
parents:
11075
diff
changeset
|
641 | return; |
|
17155
143ff2796376
Replace strcasecmp() calls with glib equivalents.
Richard Laager <rlaager@pidgin.im>
parents:
16698
diff
changeset
|
642 | if (g_ascii_strcasecmp(data, "true") == 0) |
|
11076
f6c4835e68ee
[gaim-migrate @ 13086]
Mark Doliner <markdoliner@pidgin.im>
parents:
11075
diff
changeset
|
643 | active = TRUE; |
|
17155
143ff2796376
Replace strcasecmp() calls with glib equivalents.
Richard Laager <rlaager@pidgin.im>
parents:
16698
diff
changeset
|
644 | else if (g_ascii_strcasecmp(data, "false") == 0) |
|
11076
f6c4835e68ee
[gaim-migrate @ 13086]
Mark Doliner <markdoliner@pidgin.im>
parents:
11075
diff
changeset
|
645 | active = FALSE; |
|
10738
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
646 | else |
|
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
647 | return; |
|
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
648 | |
|
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
649 | /* Get the type of the status */ |
|
11075
d93c3b97203e
[gaim-migrate @ 13085]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11067
diff
changeset
|
650 | type = xmlnode_get_attrib(node, "type"); |
|
d93c3b97203e
[gaim-migrate @ 13085]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11067
diff
changeset
|
651 | if (type == NULL) |
|
10738
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
652 | return; |
|
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
653 | |
|
11249
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
654 | /* Read attributes into a GList */ |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
655 | child = xmlnode_get_child(node, "attributes"); |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
656 | if (child != NULL) |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
657 | { |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
658 | attrs = parse_status_attrs(child, |
| 15884 | 659 | purple_account_get_status(account, type)); |
|
11249
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
660 | } |
|
10738
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
661 | |
| 15884 | 662 | purple_account_set_status_list(account, type, active, attrs); |
|
11249
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
663 | |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
664 | g_list_free(attrs); |
|
10738
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
665 | } |
|
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
666 | |
|
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
667 | static void |
| 15884 | 668 | parse_statuses(xmlnode *node, PurpleAccount *account) |
|
10738
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
669 | { |
|
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
670 | xmlnode *child; |
|
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
671 | |
|
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
672 | for (child = xmlnode_get_child(node, "status"); child != NULL; |
|
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
673 | child = xmlnode_get_next_twin(child)) |
|
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
674 | { |
|
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
675 | parse_status(child, account); |
|
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
676 | } |
|
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
677 | } |
|
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
678 | |
|
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
679 | static void |
| 15884 | 680 | parse_proxy_info(xmlnode *node, PurpleAccount *account) |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
681 | { |
| 15884 | 682 | PurpleProxyInfo *proxy_info; |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
683 | xmlnode *child; |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
684 | char *data; |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
685 | |
| 15884 | 686 | proxy_info = purple_proxy_info_new(); |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
687 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
688 | /* Use the global proxy settings, by default */ |
| 15884 | 689 | purple_proxy_info_set_type(proxy_info, PURPLE_PROXY_USE_GLOBAL); |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
690 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
691 | /* Read proxy type */ |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
692 | child = xmlnode_get_child(node, "type"); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
693 | if ((child != NULL) && ((data = xmlnode_get_data(child)) != NULL)) |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
694 | { |
|
25859
b42be7bb9dac
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents:
25140
diff
changeset
|
695 | if (purple_strequal(data, "global")) |
| 15884 | 696 | purple_proxy_info_set_type(proxy_info, PURPLE_PROXY_USE_GLOBAL); |
|
25859
b42be7bb9dac
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents:
25140
diff
changeset
|
697 | else if (purple_strequal(data, "none")) |
| 15884 | 698 | purple_proxy_info_set_type(proxy_info, PURPLE_PROXY_NONE); |
|
25859
b42be7bb9dac
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents:
25140
diff
changeset
|
699 | else if (purple_strequal(data, "http")) |
| 15884 | 700 | purple_proxy_info_set_type(proxy_info, PURPLE_PROXY_HTTP); |
|
25859
b42be7bb9dac
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents:
25140
diff
changeset
|
701 | else if (purple_strequal(data, "socks4")) |
| 15884 | 702 | purple_proxy_info_set_type(proxy_info, PURPLE_PROXY_SOCKS4); |
|
25859
b42be7bb9dac
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents:
25140
diff
changeset
|
703 | else if (purple_strequal(data, "socks5")) |
| 15884 | 704 | purple_proxy_info_set_type(proxy_info, PURPLE_PROXY_SOCKS5); |
|
25859
b42be7bb9dac
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents:
25140
diff
changeset
|
705 | else if (purple_strequal(data, "envvar")) |
| 15884 | 706 | purple_proxy_info_set_type(proxy_info, PURPLE_PROXY_USE_ENVVAR); |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
707 | else |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
708 | { |
| 15884 | 709 | purple_debug_error("account", "Invalid proxy type found when " |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
710 | "loading account information for %s\n", |
| 15884 | 711 | purple_account_get_username(account)); |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
712 | } |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
713 | g_free(data); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
714 | } |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
715 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
716 | /* Read proxy host */ |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
717 | child = xmlnode_get_child(node, "host"); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
718 | if ((child != NULL) && ((data = xmlnode_get_data(child)) != NULL)) |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
719 | { |
| 15884 | 720 | purple_proxy_info_set_host(proxy_info, data); |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
721 | g_free(data); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
722 | } |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
723 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
724 | /* Read proxy port */ |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
725 | child = xmlnode_get_child(node, "port"); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
726 | if ((child != NULL) && ((data = xmlnode_get_data(child)) != NULL)) |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
727 | { |
| 15884 | 728 | purple_proxy_info_set_port(proxy_info, atoi(data)); |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
729 | g_free(data); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
730 | } |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
731 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
732 | /* Read proxy username */ |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
733 | child = xmlnode_get_child(node, "username"); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
734 | if ((child != NULL) && ((data = xmlnode_get_data(child)) != NULL)) |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
735 | { |
| 15884 | 736 | purple_proxy_info_set_username(proxy_info, data); |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
737 | g_free(data); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
738 | } |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
739 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
740 | /* Read proxy password */ |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
741 | child = xmlnode_get_child(node, "password"); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
742 | if ((child != NULL) && ((data = xmlnode_get_data(child)) != NULL)) |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
743 | { |
| 15884 | 744 | purple_proxy_info_set_password(proxy_info, data); |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
745 | g_free(data); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
746 | } |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
747 | |
|
15041
18a6f6cdce33
[gaim-migrate @ 17758]
Daniel Atallah <datallah@pidgin.im>
parents:
15030
diff
changeset
|
748 | /* If there are no values set then proxy_info NULL */ |
| 15884 | 749 | if ((purple_proxy_info_get_type(proxy_info) == PURPLE_PROXY_USE_GLOBAL) && |
| 750 | (purple_proxy_info_get_host(proxy_info) == NULL) && | |
| 751 | (purple_proxy_info_get_port(proxy_info) == 0) && | |
| 752 | (purple_proxy_info_get_username(proxy_info) == NULL) && | |
| 753 | (purple_proxy_info_get_password(proxy_info) == NULL)) | |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
754 | { |
| 15884 | 755 | purple_proxy_info_destroy(proxy_info); |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
756 | return; |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
757 | } |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
758 | |
| 15884 | 759 | purple_account_set_proxy_info(account, proxy_info); |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
760 | } |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
761 | |
|
21314
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
762 | static void |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
763 | parse_current_error(xmlnode *node, PurpleAccount *account) |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
764 | { |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
765 | guint type; |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
766 | char *type_str = NULL, *description = NULL; |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
767 | xmlnode *child; |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
768 | PurpleConnectionErrorInfo *current_error = NULL; |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
769 | |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
770 | child = xmlnode_get_child(node, "type"); |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
771 | if (child == NULL || (type_str = xmlnode_get_data(child)) == NULL) |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
772 | return; |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
773 | type = atoi(type_str); |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
774 | g_free(type_str); |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
775 | |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
776 | if (type > PURPLE_CONNECTION_ERROR_OTHER_ERROR) |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
777 | { |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
778 | purple_debug_error("account", |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
779 | "Invalid PurpleConnectionError value %d found when " |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
780 | "loading account information for %s\n", |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
781 | type, purple_account_get_username(account)); |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
782 | type = PURPLE_CONNECTION_ERROR_OTHER_ERROR; |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
783 | } |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
784 | |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
785 | child = xmlnode_get_child(node, "description"); |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
786 | if (child) |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
787 | description = xmlnode_get_data(child); |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
788 | if (description == NULL) |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
789 | description = g_strdup(""); |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
790 | |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
791 | current_error = g_new0(PurpleConnectionErrorInfo, 1); |
|
22467
151133154190
Register and unregister the PurpleConnectionErrorInfo pointers with dbus, I
Etan Reisner <deryni@pidgin.im>
parents:
22357
diff
changeset
|
792 | PURPLE_DBUS_REGISTER_POINTER(current_error, PurpleConnectionErrorInfo); |
|
21314
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
793 | current_error->type = type; |
| 22235 | 794 | current_error->description = description; |
|
21314
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
795 | |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
796 | set_current_error(account, current_error); |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
797 | } |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
798 | |
| 15884 | 799 | static PurpleAccount * |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
800 | parse_account(xmlnode *node) |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
801 | { |
| 15884 | 802 | PurpleAccount *ret; |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
803 | xmlnode *child; |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
804 | char *protocol_id = NULL; |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
805 | char *name = NULL; |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
806 | char *data; |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
807 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
808 | child = xmlnode_get_child(node, "protocol"); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
809 | if (child != NULL) |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
810 | protocol_id = xmlnode_get_data(child); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
811 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
812 | child = xmlnode_get_child(node, "name"); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
813 | if (child != NULL) |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
814 | name = xmlnode_get_data(child); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
815 | if (name == NULL) |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
816 | { |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
817 | /* Do we really need to do this? */ |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
818 | child = xmlnode_get_child(node, "username"); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
819 | if (child != NULL) |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
820 | name = xmlnode_get_data(child); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
821 | } |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
822 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
823 | if ((protocol_id == NULL) || (name == NULL)) |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
824 | { |
|
14141
cc05956d28dc
[gaim-migrate @ 16700]
Daniel Atallah <datallah@pidgin.im>
parents:
14097
diff
changeset
|
825 | g_free(protocol_id); |
|
cc05956d28dc
[gaim-migrate @ 16700]
Daniel Atallah <datallah@pidgin.im>
parents:
14097
diff
changeset
|
826 | g_free(name); |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
827 | return NULL; |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
828 | } |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
829 | |
| 15884 | 830 | ret = purple_account_new(name, _purple_oscar_convert(name, protocol_id)); /* XXX: */ |
|
14141
cc05956d28dc
[gaim-migrate @ 16700]
Daniel Atallah <datallah@pidgin.im>
parents:
14097
diff
changeset
|
831 | g_free(name); |
|
cc05956d28dc
[gaim-migrate @ 16700]
Daniel Atallah <datallah@pidgin.im>
parents:
14097
diff
changeset
|
832 | g_free(protocol_id); |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
833 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
834 | /* Read the password */ |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
835 | child = xmlnode_get_child(node, "password"); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
836 | if ((child != NULL) && ((data = xmlnode_get_data(child)) != NULL)) |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
837 | { |
| 15884 | 838 | purple_account_set_remember_password(ret, TRUE); |
| 839 | purple_account_set_password(ret, data); | |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
840 | g_free(data); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
841 | } |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
842 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
843 | /* Read the alias */ |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
844 | child = xmlnode_get_child(node, "alias"); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
845 | if ((child != NULL) && ((data = xmlnode_get_data(child)) != NULL)) |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
846 | { |
|
11247
3b59f05f78b6
[gaim-migrate @ 13416]
Mark Doliner <markdoliner@pidgin.im>
parents:
11146
diff
changeset
|
847 | if (*data != '\0') |
| 15884 | 848 | purple_account_set_alias(ret, data); |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
849 | g_free(data); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
850 | } |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
851 | |
|
10738
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
852 | /* Read the statuses */ |
|
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
853 | child = xmlnode_get_child(node, "statuses"); |
|
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
854 | if (child != NULL) |
|
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
855 | { |
|
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
856 | parse_statuses(child, ret); |
|
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
857 | } |
|
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
858 | |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
859 | /* Read the userinfo */ |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
860 | child = xmlnode_get_child(node, "userinfo"); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
861 | if ((child != NULL) && ((data = xmlnode_get_data(child)) != NULL)) |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
862 | { |
| 15884 | 863 | purple_account_set_user_info(ret, data); |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
864 | g_free(data); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
865 | } |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
866 | |
|
16538
c7e61e2917c9
Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents:
16180
diff
changeset
|
867 | /* Read an old buddyicon */ |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
868 | child = xmlnode_get_child(node, "buddyicon"); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
869 | if ((child != NULL) && ((data = xmlnode_get_data(child)) != NULL)) |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
870 | { |
|
16544
945caa0d6436
Kill some compiler warnings and TODOs of mine.
Richard Laager <rlaager@pidgin.im>
parents:
16538
diff
changeset
|
871 | const char *dirname = purple_buddy_icons_get_cache_dir(); |
|
945caa0d6436
Kill some compiler warnings and TODOs of mine.
Richard Laager <rlaager@pidgin.im>
parents:
16538
diff
changeset
|
872 | char *filename = g_build_filename(dirname, data, NULL); |
|
945caa0d6436
Kill some compiler warnings and TODOs of mine.
Richard Laager <rlaager@pidgin.im>
parents:
16538
diff
changeset
|
873 | gchar *contents; |
|
945caa0d6436
Kill some compiler warnings and TODOs of mine.
Richard Laager <rlaager@pidgin.im>
parents:
16538
diff
changeset
|
874 | gsize len; |
|
945caa0d6436
Kill some compiler warnings and TODOs of mine.
Richard Laager <rlaager@pidgin.im>
parents:
16538
diff
changeset
|
875 | |
|
945caa0d6436
Kill some compiler warnings and TODOs of mine.
Richard Laager <rlaager@pidgin.im>
parents:
16538
diff
changeset
|
876 | if (g_file_get_contents(filename, &contents, &len, NULL)) |
|
945caa0d6436
Kill some compiler warnings and TODOs of mine.
Richard Laager <rlaager@pidgin.im>
parents:
16538
diff
changeset
|
877 | { |
|
945caa0d6436
Kill some compiler warnings and TODOs of mine.
Richard Laager <rlaager@pidgin.im>
parents:
16538
diff
changeset
|
878 | purple_buddy_icons_set_account_icon(ret, (guchar *)contents, len); |
|
945caa0d6436
Kill some compiler warnings and TODOs of mine.
Richard Laager <rlaager@pidgin.im>
parents:
16538
diff
changeset
|
879 | } |
|
16659
7793d53c15bb
Part of the patch in ticket #383
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16565
diff
changeset
|
880 | else |
|
7793d53c15bb
Part of the patch in ticket #383
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16565
diff
changeset
|
881 | { |
|
7793d53c15bb
Part of the patch in ticket #383
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16565
diff
changeset
|
882 | /* Try to see if the icon got left behind in the old cache. */ |
|
7793d53c15bb
Part of the patch in ticket #383
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16565
diff
changeset
|
883 | g_free(filename); |
|
7793d53c15bb
Part of the patch in ticket #383
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16565
diff
changeset
|
884 | filename = g_build_filename(g_get_home_dir(), ".gaim", "icons", data, NULL); |
|
7793d53c15bb
Part of the patch in ticket #383
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16565
diff
changeset
|
885 | if (g_file_get_contents(filename, &contents, &len, NULL)) { |
|
7793d53c15bb
Part of the patch in ticket #383
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16565
diff
changeset
|
886 | purple_buddy_icons_set_account_icon(ret, (guchar*)contents, len); |
|
7793d53c15bb
Part of the patch in ticket #383
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16565
diff
changeset
|
887 | } |
|
7793d53c15bb
Part of the patch in ticket #383
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
16565
diff
changeset
|
888 | } |
|
16544
945caa0d6436
Kill some compiler warnings and TODOs of mine.
Richard Laager <rlaager@pidgin.im>
parents:
16538
diff
changeset
|
889 | |
|
945caa0d6436
Kill some compiler warnings and TODOs of mine.
Richard Laager <rlaager@pidgin.im>
parents:
16538
diff
changeset
|
890 | g_free(filename); |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
891 | g_free(data); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
892 | } |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
893 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
894 | /* Read settings (both core and UI) */ |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
895 | for (child = xmlnode_get_child(node, "settings"); child != NULL; |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
896 | child = xmlnode_get_next_twin(child)) |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
897 | { |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
898 | parse_settings(child, ret); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
899 | } |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
900 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
901 | /* Read proxy */ |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
902 | child = xmlnode_get_child(node, "proxy"); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
903 | if (child != NULL) |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
904 | { |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
905 | parse_proxy_info(child, ret); |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
906 | } |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
907 | |
|
21314
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
908 | /* Read current error */ |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
909 | child = xmlnode_get_child(node, "current_error"); |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
910 | if (child != NULL) |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
911 | { |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
912 | parse_current_error(child, ret); |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
913 | } |
|
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
914 | |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
915 | return ret; |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
916 | } |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
917 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
918 | static void |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
919 | load_accounts(void) |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
920 | { |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
921 | xmlnode *node, *child; |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
922 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
923 | accounts_loaded = TRUE; |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
924 | |
| 15884 | 925 | node = purple_util_read_xml_from_file("accounts.xml", _("accounts")); |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
926 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
927 | if (node == NULL) |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
928 | return; |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
929 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
930 | for (child = xmlnode_get_child(node, "account"); child != NULL; |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
931 | child = xmlnode_get_next_twin(child)) |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
932 | { |
| 15884 | 933 | PurpleAccount *new_acct; |
| 10490 | 934 | new_acct = parse_account(child); |
| 15884 | 935 | purple_accounts_add(new_acct); |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
936 | } |
| 11593 | 937 | |
| 938 | xmlnode_free(node); | |
|
16565
f5cd28cc7367
Ref the filenames for account buddy icons on load.
Richard Laager <rlaager@pidgin.im>
parents:
16545
diff
changeset
|
939 | |
|
16698
1fb16746439f
Fix up the private function calls to be prefixed with an underscore.
Richard Laager <rlaager@pidgin.im>
parents:
16659
diff
changeset
|
940 | _purple_buddy_icons_account_loaded_cb(); |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
941 | } |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
942 | |
|
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
943 | |
| 5563 | 944 | static void |
|
5794
ebdbb7dc6658
[gaim-migrate @ 6219]
Christian Hammond <chipx86@chipx86.com>
parents:
5792
diff
changeset
|
945 | delete_setting(void *data) |
| 5563 | 946 | { |
| 15884 | 947 | PurpleAccountSetting *setting = (PurpleAccountSetting *)data; |
| 5563 | 948 | |
|
14097
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
13735
diff
changeset
|
949 | g_free(setting->ui); |
|
5777
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
950 | |
| 15884 | 951 | if (setting->type == PURPLE_PREF_STRING) |
| 5563 | 952 | g_free(setting->value.string); |
| 953 | ||
| 954 | g_free(setting); | |
| 955 | } | |
| 956 | ||
| 15884 | 957 | PurpleAccount * |
| 958 | purple_account_new(const char *username, const char *protocol_id) | |
| 5563 | 959 | { |
| 15884 | 960 | PurpleAccount *account = NULL; |
|
21287
c4971408eae8
Make PurpleAccount keep track of the last connection error suffered (or not, if
Will Thompson <resiak@pidgin.im>
parents:
21233
diff
changeset
|
961 | PurpleAccountPrivate *priv = NULL; |
| 15884 | 962 | PurplePlugin *prpl = NULL; |
| 963 | PurplePluginProtocolInfo *prpl_info = NULL; | |
| 964 | PurpleStatusType *status_type; | |
| 5563 | 965 | |
|
9944
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
966 | g_return_val_if_fail(username != NULL, NULL); |
|
9971
8291bafb0025
[gaim-migrate @ 10882]
Daniel Atallah <datallah@pidgin.im>
parents:
9944
diff
changeset
|
967 | g_return_val_if_fail(protocol_id != NULL, NULL); |
| 5563 | 968 | |
| 15884 | 969 | account = purple_accounts_find(username, protocol_id); |
|
5867
46d0ef5058c7
[gaim-migrate @ 6298]
Christian Hammond <chipx86@chipx86.com>
parents:
5865
diff
changeset
|
970 | |
|
5874
5e19273d3c6f
[gaim-migrate @ 6306]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
971 | if (account != NULL) |
|
5e19273d3c6f
[gaim-migrate @ 6306]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
972 | return account; |
|
5867
46d0ef5058c7
[gaim-migrate @ 6298]
Christian Hammond <chipx86@chipx86.com>
parents:
5865
diff
changeset
|
973 | |
| 15884 | 974 | account = g_new0(PurpleAccount, 1); |
| 975 | PURPLE_DBUS_REGISTER_POINTER(account, PurpleAccount); | |
|
21287
c4971408eae8
Make PurpleAccount keep track of the last connection error suffered (or not, if
Will Thompson <resiak@pidgin.im>
parents:
21233
diff
changeset
|
976 | priv = g_new0(PurpleAccountPrivate, 1); |
|
c4971408eae8
Make PurpleAccount keep track of the last connection error suffered (or not, if
Will Thompson <resiak@pidgin.im>
parents:
21233
diff
changeset
|
977 | account->priv = priv; |
| 15884 | 978 | |
| 979 | purple_account_set_username(account, username); | |
| 980 | ||
| 981 | purple_account_set_protocol_id(account, protocol_id); | |
| 5563 | 982 | |
| 983 | account->settings = g_hash_table_new_full(g_str_hash, g_str_equal, | |
|
5794
ebdbb7dc6658
[gaim-migrate @ 6219]
Christian Hammond <chipx86@chipx86.com>
parents:
5792
diff
changeset
|
984 | g_free, delete_setting); |
|
5777
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
985 | account->ui_settings = g_hash_table_new_full(g_str_hash, g_str_equal, |
|
5779
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
986 | g_free, (GDestroyNotify)g_hash_table_destroy); |
| 8573 | 987 | account->system_log = NULL; |
|
10944
b6f61a32cacc
[gaim-migrate @ 12737]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10862
diff
changeset
|
988 | /* 0 is not a valid privacy setting */ |
| 15884 | 989 | account->perm_deny = PURPLE_PRIVACY_ALLOW_ALL; |
| 990 | ||
|
26986
5b66ec752214
Add account-(created|destroying) signals.
Paul Aurich <darkrain42@pidgin.im>
parents:
26871
diff
changeset
|
991 | purple_signal_emit(purple_accounts_get_handle(), "account-created", account); |
|
5b66ec752214
Add account-(created|destroying) signals.
Paul Aurich <darkrain42@pidgin.im>
parents:
26871
diff
changeset
|
992 | |
| 15884 | 993 | prpl = purple_find_prpl(protocol_id); |
|
10052
329dad7e2da3
[gaim-migrate @ 11013]
Dave West <kat@users.sourceforge.net>
parents:
10012
diff
changeset
|
994 | |
| 10012 | 995 | if (prpl == NULL) |
| 996 | return account; | |
|
10052
329dad7e2da3
[gaim-migrate @ 11013]
Dave West <kat@users.sourceforge.net>
parents:
10012
diff
changeset
|
997 | |
| 15884 | 998 | prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); |
|
10738
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
999 | if (prpl_info != NULL && prpl_info->status_types != NULL) |
| 15884 | 1000 | purple_account_set_status_types(account, prpl_info->status_types(account)); |
| 1001 | ||
| 1002 | account->presence = purple_presence_new_for_account(account); | |
| 1003 | ||
| 1004 | status_type = purple_account_get_status_type_with_primitive(account, PURPLE_STATUS_AVAILABLE); | |
|
11982
095ec3ce8b3c
[gaim-migrate @ 14275]
Mark Doliner <markdoliner@pidgin.im>
parents:
11979
diff
changeset
|
1005 | if (status_type != NULL) |
| 15884 | 1006 | purple_presence_set_status_active(account->presence, |
| 1007 | purple_status_type_get_id(status_type), | |
|
11982
095ec3ce8b3c
[gaim-migrate @ 14275]
Mark Doliner <markdoliner@pidgin.im>
parents:
11979
diff
changeset
|
1008 | TRUE); |
|
095ec3ce8b3c
[gaim-migrate @ 14275]
Mark Doliner <markdoliner@pidgin.im>
parents:
11979
diff
changeset
|
1009 | else |
| 15884 | 1010 | purple_presence_set_status_active(account->presence, |
|
11982
095ec3ce8b3c
[gaim-migrate @ 14275]
Mark Doliner <markdoliner@pidgin.im>
parents:
11979
diff
changeset
|
1011 | "offline", |
|
095ec3ce8b3c
[gaim-migrate @ 14275]
Mark Doliner <markdoliner@pidgin.im>
parents:
11979
diff
changeset
|
1012 | TRUE); |
|
10052
329dad7e2da3
[gaim-migrate @ 11013]
Dave West <kat@users.sourceforge.net>
parents:
10012
diff
changeset
|
1013 | |
| 5563 | 1014 | return account; |
| 1015 | } | |
| 1016 | ||
| 1017 | void | |
| 15884 | 1018 | purple_account_destroy(PurpleAccount *account) |
| 5563 | 1019 | { |
|
21287
c4971408eae8
Make PurpleAccount keep track of the last connection error suffered (or not, if
Will Thompson <resiak@pidgin.im>
parents:
21233
diff
changeset
|
1020 | PurpleAccountPrivate *priv = NULL; |
|
18122
9bf9970c1b6a
disapproval of revision '2d8ea56b90971e7851442d96b7d74ecb4f052126'
Richard Laager <rlaager@pidgin.im>
parents:
18121
diff
changeset
|
1021 | GList *l; |
|
7324
17d02b04567c
[gaim-migrate @ 7910]
Christian Hammond <chipx86@chipx86.com>
parents:
7263
diff
changeset
|
1022 | |
| 5563 | 1023 | g_return_if_fail(account != NULL); |
| 1024 | ||
| 15884 | 1025 | purple_debug_info("account", "Destroying account %p\n", account); |
|
26986
5b66ec752214
Add account-(created|destroying) signals.
Paul Aurich <darkrain42@pidgin.im>
parents:
26871
diff
changeset
|
1026 | purple_signal_emit(purple_accounts_get_handle(), "account-destroying", account); |
| 15884 | 1027 | |
| 1028 | for (l = purple_get_conversations(); l != NULL; l = l->next) | |
|
7324
17d02b04567c
[gaim-migrate @ 7910]
Christian Hammond <chipx86@chipx86.com>
parents:
7263
diff
changeset
|
1029 | { |
| 15884 | 1030 | PurpleConversation *conv = (PurpleConversation *)l->data; |
| 1031 | ||
| 1032 | if (purple_conversation_get_account(conv) == account) | |
| 1033 | purple_conversation_set_account(conv, NULL); | |
|
7324
17d02b04567c
[gaim-migrate @ 7910]
Christian Hammond <chipx86@chipx86.com>
parents:
7263
diff
changeset
|
1034 | } |
|
17d02b04567c
[gaim-migrate @ 7910]
Christian Hammond <chipx86@chipx86.com>
parents:
7263
diff
changeset
|
1035 | |
|
11985
d4a210fb43e9
[gaim-migrate @ 14278]
Mark Doliner <markdoliner@pidgin.im>
parents:
11982
diff
changeset
|
1036 | g_free(account->username); |
|
d4a210fb43e9
[gaim-migrate @ 14278]
Mark Doliner <markdoliner@pidgin.im>
parents:
11982
diff
changeset
|
1037 | g_free(account->alias); |
|
d4a210fb43e9
[gaim-migrate @ 14278]
Mark Doliner <markdoliner@pidgin.im>
parents:
11982
diff
changeset
|
1038 | g_free(account->password); |
|
d4a210fb43e9
[gaim-migrate @ 14278]
Mark Doliner <markdoliner@pidgin.im>
parents:
11982
diff
changeset
|
1039 | g_free(account->user_info); |
|
15132
672c39839af1
[gaim-migrate @ 17854]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15119
diff
changeset
|
1040 | g_free(account->buddy_icon_path); |
|
11985
d4a210fb43e9
[gaim-migrate @ 14278]
Mark Doliner <markdoliner@pidgin.im>
parents:
11982
diff
changeset
|
1041 | g_free(account->protocol_id); |
| 5563 | 1042 | |
| 1043 | g_hash_table_destroy(account->settings); | |
|
5779
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
1044 | g_hash_table_destroy(account->ui_settings); |
| 5563 | 1045 | |
| 15884 | 1046 | purple_account_set_status_types(account, NULL); |
| 1047 | ||
| 1048 | purple_presence_destroy(account->presence); | |
|
9944
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
1049 | |
| 8573 | 1050 | if(account->system_log) |
| 15884 | 1051 | purple_log_free(account->system_log); |
| 1052 | ||
|
21287
c4971408eae8
Make PurpleAccount keep track of the last connection error suffered (or not, if
Will Thompson <resiak@pidgin.im>
parents:
21233
diff
changeset
|
1053 | priv = PURPLE_ACCOUNT_GET_PRIVATE(account); |
|
22467
151133154190
Register and unregister the PurpleConnectionErrorInfo pointers with dbus, I
Etan Reisner <deryni@pidgin.im>
parents:
22357
diff
changeset
|
1054 | PURPLE_DBUS_UNREGISTER_POINTER(priv->current_error); |
|
21287
c4971408eae8
Make PurpleAccount keep track of the last connection error suffered (or not, if
Will Thompson <resiak@pidgin.im>
parents:
21233
diff
changeset
|
1055 | g_free(priv->current_error); |
|
c4971408eae8
Make PurpleAccount keep track of the last connection error suffered (or not, if
Will Thompson <resiak@pidgin.im>
parents:
21233
diff
changeset
|
1056 | g_free(priv); |
|
c4971408eae8
Make PurpleAccount keep track of the last connection error suffered (or not, if
Will Thompson <resiak@pidgin.im>
parents:
21233
diff
changeset
|
1057 | |
| 15884 | 1058 | PURPLE_DBUS_UNREGISTER_POINTER(account); |
| 5563 | 1059 | g_free(account); |
| 1060 | } | |
| 1061 | ||
|
10740
a1cb6b819a21
[gaim-migrate @ 12342]
Mark Doliner <markdoliner@pidgin.im>
parents:
10738
diff
changeset
|
1062 | void |
|
17814
c47c22006b0d
Implemented a callback for a successful registration, supplying the username and password to the application when available, in the way explained by Sean.
Andreas Monitzer <am@adiumx.com>
parents:
17800
diff
changeset
|
1063 | purple_account_set_register_callback(PurpleAccount *account, PurpleAccountRegistrationCb cb, void *user_data) |
|
c47c22006b0d
Implemented a callback for a successful registration, supplying the username and password to the application when available, in the way explained by Sean.
Andreas Monitzer <am@adiumx.com>
parents:
17800
diff
changeset
|
1064 | { |
|
c47c22006b0d
Implemented a callback for a successful registration, supplying the username and password to the application when available, in the way explained by Sean.
Andreas Monitzer <am@adiumx.com>
parents:
17800
diff
changeset
|
1065 | g_return_if_fail(account != NULL); |
|
20093
04f3c1dcd2cf
applied changes from 5fda75104115d0a95c1e214b6b3ca18c4dc86a0c
Richard Laager <rlaager@pidgin.im>
parents:
19897
diff
changeset
|
1066 | |
|
17814
c47c22006b0d
Implemented a callback for a successful registration, supplying the username and password to the application when available, in the way explained by Sean.
Andreas Monitzer <am@adiumx.com>
parents:
17800
diff
changeset
|
1067 | account->registration_cb = cb; |
|
c47c22006b0d
Implemented a callback for a successful registration, supplying the username and password to the application when available, in the way explained by Sean.
Andreas Monitzer <am@adiumx.com>
parents:
17800
diff
changeset
|
1068 | account->registration_cb_user_data = user_data; |
|
c47c22006b0d
Implemented a callback for a successful registration, supplying the username and password to the application when available, in the way explained by Sean.
Andreas Monitzer <am@adiumx.com>
parents:
17800
diff
changeset
|
1069 | } |
|
c47c22006b0d
Implemented a callback for a successful registration, supplying the username and password to the application when available, in the way explained by Sean.
Andreas Monitzer <am@adiumx.com>
parents:
17800
diff
changeset
|
1070 | |
|
c47c22006b0d
Implemented a callback for a successful registration, supplying the username and password to the application when available, in the way explained by Sean.
Andreas Monitzer <am@adiumx.com>
parents:
17800
diff
changeset
|
1071 | void |
| 15884 | 1072 | purple_account_register(PurpleAccount *account) |
| 6581 | 1073 | { |
|
10740
a1cb6b819a21
[gaim-migrate @ 12342]
Mark Doliner <markdoliner@pidgin.im>
parents:
10738
diff
changeset
|
1074 | g_return_if_fail(account != NULL); |
| 6581 | 1075 | |
| 15884 | 1076 | purple_debug_info("account", "Registering account %s\n", |
| 1077 | purple_account_get_username(account)); | |
| 1078 | ||
|
24569
5dbd0617a27d
Build everything with the *_DISABLE_DEPRECATED flags set. This allows us
Richard Laager <rlaager@pidgin.im>
parents:
24230
diff
changeset
|
1079 | _purple_connection_new(account, TRUE, purple_account_get_password(account)); |
|
10740
a1cb6b819a21
[gaim-migrate @ 12342]
Mark Doliner <markdoliner@pidgin.im>
parents:
10738
diff
changeset
|
1080 | } |
| 6581 | 1081 | |
|
18912
606597744812
Added unregistering XMPP accounts. This requires a new prpl-struct entry, but I got an ok for that on the mailing list.
Andreas Monitzer <am@adiumx.com>
parents:
18718
diff
changeset
|
1082 | void |
|
18994
310e9d853e2b
Implemented a callback for unregistering, mirroring the registration callback. Since this is a new API, I can do it properly by passing it right in the unregister function call, instead of having a separate function for setting it.
Andreas Monitzer <am@adiumx.com>
parents:
18912
diff
changeset
|
1083 | purple_account_unregister(PurpleAccount *account, PurpleAccountUnregistrationCb cb, void *user_data) |
|
18912
606597744812
Added unregistering XMPP accounts. This requires a new prpl-struct entry, but I got an ok for that on the mailing list.
Andreas Monitzer <am@adiumx.com>
parents:
18718
diff
changeset
|
1084 | { |
|
606597744812
Added unregistering XMPP accounts. This requires a new prpl-struct entry, but I got an ok for that on the mailing list.
Andreas Monitzer <am@adiumx.com>
parents:
18718
diff
changeset
|
1085 | g_return_if_fail(account != NULL); |
|
20093
04f3c1dcd2cf
applied changes from 5fda75104115d0a95c1e214b6b3ca18c4dc86a0c
Richard Laager <rlaager@pidgin.im>
parents:
19897
diff
changeset
|
1086 | |
|
18912
606597744812
Added unregistering XMPP accounts. This requires a new prpl-struct entry, but I got an ok for that on the mailing list.
Andreas Monitzer <am@adiumx.com>
parents:
18718
diff
changeset
|
1087 | purple_debug_info("account", "Unregistering account %s\n", |
|
606597744812
Added unregistering XMPP accounts. This requires a new prpl-struct entry, but I got an ok for that on the mailing list.
Andreas Monitzer <am@adiumx.com>
parents:
18718
diff
changeset
|
1088 | purple_account_get_username(account)); |
|
20093
04f3c1dcd2cf
applied changes from 5fda75104115d0a95c1e214b6b3ca18c4dc86a0c
Richard Laager <rlaager@pidgin.im>
parents:
19897
diff
changeset
|
1089 | |
|
24569
5dbd0617a27d
Build everything with the *_DISABLE_DEPRECATED flags set. This allows us
Richard Laager <rlaager@pidgin.im>
parents:
24230
diff
changeset
|
1090 | _purple_connection_new_unregister(account, purple_account_get_password(account), cb, user_data); |
|
18912
606597744812
Added unregistering XMPP accounts. This requires a new prpl-struct entry, but I got an ok for that on the mailing list.
Andreas Monitzer <am@adiumx.com>
parents:
18718
diff
changeset
|
1091 | } |
|
606597744812
Added unregistering XMPP accounts. This requires a new prpl-struct entry, but I got an ok for that on the mailing list.
Andreas Monitzer <am@adiumx.com>
parents:
18718
diff
changeset
|
1092 | |
|
10740
a1cb6b819a21
[gaim-migrate @ 12342]
Mark Doliner <markdoliner@pidgin.im>
parents:
10738
diff
changeset
|
1093 | static void |
| 15884 | 1094 | request_password_ok_cb(PurpleAccount *account, PurpleRequestFields *fields) |
|
10740
a1cb6b819a21
[gaim-migrate @ 12342]
Mark Doliner <markdoliner@pidgin.im>
parents:
10738
diff
changeset
|
1095 | { |
|
11042
d1ccf8d8a187
[gaim-migrate @ 12954]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11033
diff
changeset
|
1096 | const char *entry; |
|
d1ccf8d8a187
[gaim-migrate @ 12954]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11033
diff
changeset
|
1097 | gboolean remember; |
|
11985
d4a210fb43e9
[gaim-migrate @ 14278]
Mark Doliner <markdoliner@pidgin.im>
parents:
11982
diff
changeset
|
1098 | |
| 15884 | 1099 | entry = purple_request_fields_get_string(fields, "password"); |
| 1100 | remember = purple_request_fields_get_bool(fields, "remember"); | |
|
11985
d4a210fb43e9
[gaim-migrate @ 14278]
Mark Doliner <markdoliner@pidgin.im>
parents:
11982
diff
changeset
|
1101 | |
|
10740
a1cb6b819a21
[gaim-migrate @ 12342]
Mark Doliner <markdoliner@pidgin.im>
parents:
10738
diff
changeset
|
1102 | if (!entry || !*entry) |
|
a1cb6b819a21
[gaim-migrate @ 12342]
Mark Doliner <markdoliner@pidgin.im>
parents:
10738
diff
changeset
|
1103 | { |
| 15884 | 1104 | purple_notify_error(account, NULL, _("Password is required to sign on."), NULL); |
|
10740
a1cb6b819a21
[gaim-migrate @ 12342]
Mark Doliner <markdoliner@pidgin.im>
parents:
10738
diff
changeset
|
1105 | return; |
|
a1cb6b819a21
[gaim-migrate @ 12342]
Mark Doliner <markdoliner@pidgin.im>
parents:
10738
diff
changeset
|
1106 | } |
| 6581 | 1107 | |
|
11042
d1ccf8d8a187
[gaim-migrate @ 12954]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11033
diff
changeset
|
1108 | if(remember) |
|
20093
04f3c1dcd2cf
applied changes from 5fda75104115d0a95c1e214b6b3ca18c4dc86a0c
Richard Laager <rlaager@pidgin.im>
parents:
19897
diff
changeset
|
1109 | purple_account_set_remember_password(account, TRUE); |
| 15884 | 1110 | |
| 1111 | purple_account_set_password(account, entry); | |
| 1112 | ||
|
24569
5dbd0617a27d
Build everything with the *_DISABLE_DEPRECATED flags set. This allows us
Richard Laager <rlaager@pidgin.im>
parents:
24230
diff
changeset
|
1113 | _purple_connection_new(account, FALSE, entry); |
| 6581 | 1114 | } |
| 1115 | ||
|
20093
04f3c1dcd2cf
applied changes from 5fda75104115d0a95c1e214b6b3ca18c4dc86a0c
Richard Laager <rlaager@pidgin.im>
parents:
19897
diff
changeset
|
1116 | static void |
|
04f3c1dcd2cf
applied changes from 5fda75104115d0a95c1e214b6b3ca18c4dc86a0c
Richard Laager <rlaager@pidgin.im>
parents:
19897
diff
changeset
|
1117 | request_password_cancel_cb(PurpleAccount *account, PurpleRequestFields *fields) |
|
04f3c1dcd2cf
applied changes from 5fda75104115d0a95c1e214b6b3ca18c4dc86a0c
Richard Laager <rlaager@pidgin.im>
parents:
19897
diff
changeset
|
1118 | { |
|
04f3c1dcd2cf
applied changes from 5fda75104115d0a95c1e214b6b3ca18c4dc86a0c
Richard Laager <rlaager@pidgin.im>
parents:
19897
diff
changeset
|
1119 | /* Disable the account as the user has canceled connecting */ |
|
04f3c1dcd2cf
applied changes from 5fda75104115d0a95c1e214b6b3ca18c4dc86a0c
Richard Laager <rlaager@pidgin.im>
parents:
19897
diff
changeset
|
1120 | purple_account_set_enabled(account, purple_core_get_ui(), FALSE); |
|
04f3c1dcd2cf
applied changes from 5fda75104115d0a95c1e214b6b3ca18c4dc86a0c
Richard Laager <rlaager@pidgin.im>
parents:
19897
diff
changeset
|
1121 | } |
|
04f3c1dcd2cf
applied changes from 5fda75104115d0a95c1e214b6b3ca18c4dc86a0c
Richard Laager <rlaager@pidgin.im>
parents:
19897
diff
changeset
|
1122 | |
|
04f3c1dcd2cf
applied changes from 5fda75104115d0a95c1e214b6b3ca18c4dc86a0c
Richard Laager <rlaager@pidgin.im>
parents:
19897
diff
changeset
|
1123 | |
|
16180
82761882c366
patch from Simon Wilkinson to support Jabber/XMPP w/o passwords
Nathan Walp <nwalp@pidgin.im>
parents:
15884
diff
changeset
|
1124 | void |
|
82761882c366
patch from Simon Wilkinson to support Jabber/XMPP w/o passwords
Nathan Walp <nwalp@pidgin.im>
parents:
15884
diff
changeset
|
1125 | purple_account_request_password(PurpleAccount *account, GCallback ok_cb, |
|
82761882c366
patch from Simon Wilkinson to support Jabber/XMPP w/o passwords
Nathan Walp <nwalp@pidgin.im>
parents:
15884
diff
changeset
|
1126 | GCallback cancel_cb, void *user_data) |
|
10740
a1cb6b819a21
[gaim-migrate @ 12342]
Mark Doliner <markdoliner@pidgin.im>
parents:
10738
diff
changeset
|
1127 | { |
|
a1cb6b819a21
[gaim-migrate @ 12342]
Mark Doliner <markdoliner@pidgin.im>
parents:
10738
diff
changeset
|
1128 | gchar *primary; |
|
a1cb6b819a21
[gaim-migrate @ 12342]
Mark Doliner <markdoliner@pidgin.im>
parents:
10738
diff
changeset
|
1129 | const gchar *username; |
| 15884 | 1130 | PurpleRequestFieldGroup *group; |
| 1131 | PurpleRequestField *field; | |
| 1132 | PurpleRequestFields *fields; | |
|
10740
a1cb6b819a21
[gaim-migrate @ 12342]
Mark Doliner <markdoliner@pidgin.im>
parents:
10738
diff
changeset
|
1133 | |
|
10758
b4554ec8d126
[gaim-migrate @ 12361]
Mark Doliner <markdoliner@pidgin.im>
parents:
10754
diff
changeset
|
1134 | /* Close any previous password request windows */ |
| 15884 | 1135 | purple_request_close_with_handle(account); |
| 1136 | ||
| 1137 | username = purple_account_get_username(account); | |
|
10774
f4238d6312ff
[gaim-migrate @ 12383]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10760
diff
changeset
|
1138 | primary = g_strdup_printf(_("Enter password for %s (%s)"), username, |
| 15884 | 1139 | purple_account_get_protocol_name(account)); |
| 1140 | ||
| 1141 | fields = purple_request_fields_new(); | |
| 1142 | group = purple_request_field_group_new(NULL); | |
| 1143 | purple_request_fields_add_group(fields, group); | |
| 1144 | ||
| 1145 | field = purple_request_field_string_new("password", _("Enter Password"), NULL, FALSE); | |
| 1146 | purple_request_field_string_set_masked(field, TRUE); | |
| 1147 | purple_request_field_set_required(field, TRUE); | |
| 1148 | purple_request_field_group_add_field(group, field); | |
| 1149 | ||
| 1150 | field = purple_request_field_bool_new("remember", _("Save password"), FALSE); | |
| 1151 | purple_request_field_group_add_field(group, field); | |
| 1152 | ||
| 1153 | purple_request_fields(account, | |
|
11042
d1ccf8d8a187
[gaim-migrate @ 12954]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11033
diff
changeset
|
1154 | NULL, |
|
d1ccf8d8a187
[gaim-migrate @ 12954]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11033
diff
changeset
|
1155 | primary, |
|
d1ccf8d8a187
[gaim-migrate @ 12954]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11033
diff
changeset
|
1156 | NULL, |
|
d1ccf8d8a187
[gaim-migrate @ 12954]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11033
diff
changeset
|
1157 | fields, |
|
16180
82761882c366
patch from Simon Wilkinson to support Jabber/XMPP w/o passwords
Nathan Walp <nwalp@pidgin.im>
parents:
15884
diff
changeset
|
1158 | _("OK"), ok_cb, |
|
82761882c366
patch from Simon Wilkinson to support Jabber/XMPP w/o passwords
Nathan Walp <nwalp@pidgin.im>
parents:
15884
diff
changeset
|
1159 | _("Cancel"), cancel_cb, |
|
16490
68c22924d66b
Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents:
16180
diff
changeset
|
1160 | account, NULL, NULL, |
|
16180
82761882c366
patch from Simon Wilkinson to support Jabber/XMPP w/o passwords
Nathan Walp <nwalp@pidgin.im>
parents:
15884
diff
changeset
|
1161 | user_data); |
|
10740
a1cb6b819a21
[gaim-migrate @ 12342]
Mark Doliner <markdoliner@pidgin.im>
parents:
10738
diff
changeset
|
1162 | g_free(primary); |
|
a1cb6b819a21
[gaim-migrate @ 12342]
Mark Doliner <markdoliner@pidgin.im>
parents:
10738
diff
changeset
|
1163 | } |
|
a1cb6b819a21
[gaim-migrate @ 12342]
Mark Doliner <markdoliner@pidgin.im>
parents:
10738
diff
changeset
|
1164 | |
|
a1cb6b819a21
[gaim-migrate @ 12342]
Mark Doliner <markdoliner@pidgin.im>
parents:
10738
diff
changeset
|
1165 | void |
| 15884 | 1166 | purple_account_connect(PurpleAccount *account) |
| 5563 | 1167 | { |
| 15884 | 1168 | PurplePlugin *prpl; |
|
27575
206581aed04f
Don't debug print that we are connecting an account until we are reasonably
Etan Reisner <deryni@pidgin.im>
parents:
25888
diff
changeset
|
1169 | const char *password, *username; |
| 15884 | 1170 | PurplePluginProtocolInfo *prpl_info; |
|
10740
a1cb6b819a21
[gaim-migrate @ 12342]
Mark Doliner <markdoliner@pidgin.im>
parents:
10738
diff
changeset
|
1171 | |
|
a1cb6b819a21
[gaim-migrate @ 12342]
Mark Doliner <markdoliner@pidgin.im>
parents:
10738
diff
changeset
|
1172 | g_return_if_fail(account != NULL); |
| 5563 | 1173 | |
|
27575
206581aed04f
Don't debug print that we are connecting an account until we are reasonably
Etan Reisner <deryni@pidgin.im>
parents:
25888
diff
changeset
|
1174 | username = purple_account_get_username(account); |
|
206581aed04f
Don't debug print that we are connecting an account until we are reasonably
Etan Reisner <deryni@pidgin.im>
parents:
25888
diff
changeset
|
1175 | |
|
206581aed04f
Don't debug print that we are connecting an account until we are reasonably
Etan Reisner <deryni@pidgin.im>
parents:
25888
diff
changeset
|
1176 | if (!purple_account_get_enabled(account, purple_core_get_ui())) { |
|
206581aed04f
Don't debug print that we are connecting an account until we are reasonably
Etan Reisner <deryni@pidgin.im>
parents:
25888
diff
changeset
|
1177 | purple_debug_info("account", |
|
206581aed04f
Don't debug print that we are connecting an account until we are reasonably
Etan Reisner <deryni@pidgin.im>
parents:
25888
diff
changeset
|
1178 | "Account %s not enabled, not connecting.\n", |
|
206581aed04f
Don't debug print that we are connecting an account until we are reasonably
Etan Reisner <deryni@pidgin.im>
parents:
25888
diff
changeset
|
1179 | username); |
|
11722
8cad41c3c5b9
[gaim-migrate @ 14013]
Mark Doliner <markdoliner@pidgin.im>
parents:
11643
diff
changeset
|
1180 | return; |
|
27575
206581aed04f
Don't debug print that we are connecting an account until we are reasonably
Etan Reisner <deryni@pidgin.im>
parents:
25888
diff
changeset
|
1181 | } |
|
11722
8cad41c3c5b9
[gaim-migrate @ 14013]
Mark Doliner <markdoliner@pidgin.im>
parents:
11643
diff
changeset
|
1182 | |
| 15884 | 1183 | prpl = purple_find_prpl(purple_account_get_protocol_id(account)); |
|
27575
206581aed04f
Don't debug print that we are connecting an account until we are reasonably
Etan Reisner <deryni@pidgin.im>
parents:
25888
diff
changeset
|
1184 | if (prpl == NULL) { |
|
10740
a1cb6b819a21
[gaim-migrate @ 12342]
Mark Doliner <markdoliner@pidgin.im>
parents:
10738
diff
changeset
|
1185 | gchar *message; |
|
6036
285e48913c72
[gaim-migrate @ 6486]
Mark Doliner <markdoliner@pidgin.im>
parents:
5979
diff
changeset
|
1186 | |
|
27575
206581aed04f
Don't debug print that we are connecting an account until we are reasonably
Etan Reisner <deryni@pidgin.im>
parents:
25888
diff
changeset
|
1187 | message = g_strdup_printf(_("Missing protocol plugin for %s"), username); |
| 15884 | 1188 | purple_notify_error(account, _("Connection Error"), message, NULL); |
|
10740
a1cb6b819a21
[gaim-migrate @ 12342]
Mark Doliner <markdoliner@pidgin.im>
parents:
10738
diff
changeset
|
1189 | g_free(message); |
|
a1cb6b819a21
[gaim-migrate @ 12342]
Mark Doliner <markdoliner@pidgin.im>
parents:
10738
diff
changeset
|
1190 | return; |
|
a1cb6b819a21
[gaim-migrate @ 12342]
Mark Doliner <markdoliner@pidgin.im>
parents:
10738
diff
changeset
|
1191 | } |
| 5563 | 1192 | |
|
27575
206581aed04f
Don't debug print that we are connecting an account until we are reasonably
Etan Reisner <deryni@pidgin.im>
parents:
25888
diff
changeset
|
1193 | purple_debug_info("account", "Connecting to account %s.\n", username); |
|
206581aed04f
Don't debug print that we are connecting an account until we are reasonably
Etan Reisner <deryni@pidgin.im>
parents:
25888
diff
changeset
|
1194 | |
| 15884 | 1195 | prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); |
| 1196 | password = purple_account_get_password(account); | |
|
10740
a1cb6b819a21
[gaim-migrate @ 12342]
Mark Doliner <markdoliner@pidgin.im>
parents:
10738
diff
changeset
|
1197 | if ((password == NULL) && |
|
a1cb6b819a21
[gaim-migrate @ 12342]
Mark Doliner <markdoliner@pidgin.im>
parents:
10738
diff
changeset
|
1198 | !(prpl_info->options & OPT_PROTO_NO_PASSWORD) && |
|
a1cb6b819a21
[gaim-migrate @ 12342]
Mark Doliner <markdoliner@pidgin.im>
parents:
10738
diff
changeset
|
1199 | !(prpl_info->options & OPT_PROTO_PASSWORD_OPTIONAL)) |
|
20093
04f3c1dcd2cf
applied changes from 5fda75104115d0a95c1e214b6b3ca18c4dc86a0c
Richard Laager <rlaager@pidgin.im>
parents:
19897
diff
changeset
|
1200 | purple_account_request_password(account, G_CALLBACK(request_password_ok_cb), G_CALLBACK(request_password_cancel_cb), account); |
|
10740
a1cb6b819a21
[gaim-migrate @ 12342]
Mark Doliner <markdoliner@pidgin.im>
parents:
10738
diff
changeset
|
1201 | else |
|
24569
5dbd0617a27d
Build everything with the *_DISABLE_DEPRECATED flags set. This allows us
Richard Laager <rlaager@pidgin.im>
parents:
24230
diff
changeset
|
1202 | _purple_connection_new(account, FALSE, password); |
| 5563 | 1203 | } |
| 1204 | ||
| 1205 | void | |
| 15884 | 1206 | purple_account_disconnect(PurpleAccount *account) |
| 5563 | 1207 | { |
| 15884 | 1208 | PurpleConnection *gc; |
|
5926
f0c5bbf16793
[gaim-migrate @ 6366]
Christian Hammond <chipx86@chipx86.com>
parents:
5879
diff
changeset
|
1209 | |
| 5563 | 1210 | g_return_if_fail(account != NULL); |
| 15884 | 1211 | g_return_if_fail(!purple_account_is_disconnected(account)); |
| 1212 | ||
| 1213 | purple_debug_info("account", "Disconnecting account %p\n", account); | |
|
5930
cdd2e5397cd3
[gaim-migrate @ 6370]
Christian Hammond <chipx86@chipx86.com>
parents:
5926
diff
changeset
|
1214 | |
| 10384 | 1215 | account->disconnecting = TRUE; |
| 5563 | 1216 | |
| 15884 | 1217 | gc = purple_account_get_connection(account); |
|
24569
5dbd0617a27d
Build everything with the *_DISABLE_DEPRECATED flags set. This allows us
Richard Laager <rlaager@pidgin.im>
parents:
24230
diff
changeset
|
1218 | _purple_connection_destroy(gc); |
| 15884 | 1219 | if (!purple_account_get_remember_password(account)) |
| 1220 | purple_account_set_password(account, NULL); | |
| 1221 | purple_account_set_connection(account, NULL); | |
| 10384 | 1222 | |
| 1223 | account->disconnecting = FALSE; | |
| 5563 | 1224 | } |
| 1225 | ||
| 1226 | void | |
| 15884 | 1227 | purple_account_notify_added(PurpleAccount *account, const char *remote_user, |
| 12287 | 1228 | const char *id, const char *alias, |
| 12286 | 1229 | const char *message) |
|
7015
bea9111282b3
[gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
1230 | { |
| 15884 | 1231 | PurpleAccountUiOps *ui_ops; |
|
7015
bea9111282b3
[gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
1232 | |
|
bea9111282b3
[gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
1233 | g_return_if_fail(account != NULL); |
|
bea9111282b3
[gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
1234 | g_return_if_fail(remote_user != NULL); |
|
bea9111282b3
[gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
1235 | |
| 15884 | 1236 | ui_ops = purple_accounts_get_ui_ops(); |
|
7015
bea9111282b3
[gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
1237 | |
|
bea9111282b3
[gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
1238 | if (ui_ops != NULL && ui_ops->notify_added != NULL) |
|
bea9111282b3
[gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
1239 | ui_ops->notify_added(account, remote_user, id, alias, message); |
|
bea9111282b3
[gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
1240 | } |
|
bea9111282b3
[gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
1241 | |
| 12285 | 1242 | void |
| 15884 | 1243 | purple_account_request_add(PurpleAccount *account, const char *remote_user, |
| 12285 | 1244 | const char *id, const char *alias, |
| 1245 | const char *message) | |
| 1246 | { | |
| 15884 | 1247 | PurpleAccountUiOps *ui_ops; |
| 12285 | 1248 | |
| 1249 | g_return_if_fail(account != NULL); | |
| 1250 | g_return_if_fail(remote_user != NULL); | |
| 1251 | ||
| 15884 | 1252 | ui_ops = purple_accounts_get_ui_ops(); |
| 12285 | 1253 | |
| 1254 | if (ui_ops != NULL && ui_ops->request_add != NULL) | |
| 1255 | ui_ops->request_add(account, remote_user, id, alias, message); | |
| 1256 | } | |
| 1257 | ||
|
25113
eacb566127a7
Use ref-counting to prevent a crash if request-auth callbacks are called
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25079
diff
changeset
|
1258 | static PurpleAccountRequestInfo * |
|
eacb566127a7
Use ref-counting to prevent a crash if request-auth callbacks are called
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25079
diff
changeset
|
1259 | purple_account_request_info_unref(PurpleAccountRequestInfo *info) |
|
eacb566127a7
Use ref-counting to prevent a crash if request-auth callbacks are called
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25079
diff
changeset
|
1260 | { |
|
eacb566127a7
Use ref-counting to prevent a crash if request-auth callbacks are called
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25079
diff
changeset
|
1261 | if (--info->ref) |
|
eacb566127a7
Use ref-counting to prevent a crash if request-auth callbacks are called
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25079
diff
changeset
|
1262 | return info; |
|
eacb566127a7
Use ref-counting to prevent a crash if request-auth callbacks are called
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25079
diff
changeset
|
1263 | |
|
eacb566127a7
Use ref-counting to prevent a crash if request-auth callbacks are called
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25079
diff
changeset
|
1264 | /* TODO: This will leak info->user_data, but there is no callback to just clean that up */ |
|
eacb566127a7
Use ref-counting to prevent a crash if request-auth callbacks are called
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25079
diff
changeset
|
1265 | g_free(info->user); |
|
eacb566127a7
Use ref-counting to prevent a crash if request-auth callbacks are called
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25079
diff
changeset
|
1266 | g_free(info); |
|
eacb566127a7
Use ref-counting to prevent a crash if request-auth callbacks are called
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25079
diff
changeset
|
1267 | return NULL; |
|
eacb566127a7
Use ref-counting to prevent a crash if request-auth callbacks are called
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25079
diff
changeset
|
1268 | } |
|
eacb566127a7
Use ref-counting to prevent a crash if request-auth callbacks are called
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25079
diff
changeset
|
1269 | |
|
15537
5d7473f14c67
The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents:
15482
diff
changeset
|
1270 | static void |
| 15884 | 1271 | purple_account_request_close_info(PurpleAccountRequestInfo *info) |
|
15537
5d7473f14c67
The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents:
15482
diff
changeset
|
1272 | { |
| 15884 | 1273 | PurpleAccountUiOps *ops; |
| 1274 | ||
| 1275 | ops = purple_accounts_get_ui_ops(); | |
|
15537
5d7473f14c67
The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents:
15482
diff
changeset
|
1276 | |
|
5d7473f14c67
The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents:
15482
diff
changeset
|
1277 | if (ops != NULL && ops->close_account_request != NULL) |
|
5d7473f14c67
The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents:
15482
diff
changeset
|
1278 | ops->close_account_request(info->ui_handle); |
|
5d7473f14c67
The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents:
15482
diff
changeset
|
1279 | |
|
25113
eacb566127a7
Use ref-counting to prevent a crash if request-auth callbacks are called
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25079
diff
changeset
|
1280 | purple_account_request_info_unref(info); |
|
15537
5d7473f14c67
The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents:
15482
diff
changeset
|
1281 | } |
|
5d7473f14c67
The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents:
15482
diff
changeset
|
1282 | |
|
20093
04f3c1dcd2cf
applied changes from 5fda75104115d0a95c1e214b6b3ca18c4dc86a0c
Richard Laager <rlaager@pidgin.im>
parents:
19897
diff
changeset
|
1283 | void |
| 15884 | 1284 | purple_account_request_close_with_account(PurpleAccount *account) |
|
15537
5d7473f14c67
The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents:
15482
diff
changeset
|
1285 | { |
|
5d7473f14c67
The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents:
15482
diff
changeset
|
1286 | GList *l, *l_next; |
|
20093
04f3c1dcd2cf
applied changes from 5fda75104115d0a95c1e214b6b3ca18c4dc86a0c
Richard Laager <rlaager@pidgin.im>
parents:
19897
diff
changeset
|
1287 | |
|
15537
5d7473f14c67
The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents:
15482
diff
changeset
|
1288 | g_return_if_fail(account != NULL); |
|
20093
04f3c1dcd2cf
applied changes from 5fda75104115d0a95c1e214b6b3ca18c4dc86a0c
Richard Laager <rlaager@pidgin.im>
parents:
19897
diff
changeset
|
1289 | |
|
15537
5d7473f14c67
The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents:
15482
diff
changeset
|
1290 | for (l = handles; l != NULL; l = l_next) { |
| 15884 | 1291 | PurpleAccountRequestInfo *info = l->data; |
|
20093
04f3c1dcd2cf
applied changes from 5fda75104115d0a95c1e214b6b3ca18c4dc86a0c
Richard Laager <rlaager@pidgin.im>
parents:
19897
diff
changeset
|
1292 | |
|
15537
5d7473f14c67
The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents:
15482
diff
changeset
|
1293 | l_next = l->next; |
|
20093
04f3c1dcd2cf
applied changes from 5fda75104115d0a95c1e214b6b3ca18c4dc86a0c
Richard Laager <rlaager@pidgin.im>
parents:
19897
diff
changeset
|
1294 | |
|
15537
5d7473f14c67
The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents:
15482
diff
changeset
|
1295 | if (info->account == account) { |
|
5d7473f14c67
The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents:
15482
diff
changeset
|
1296 | handles = g_list_remove(handles, info); |
| 15884 | 1297 | purple_account_request_close_info(info); |
|
15537
5d7473f14c67
The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents:
15482
diff
changeset
|
1298 | } |
|
5d7473f14c67
The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents:
15482
diff
changeset
|
1299 | } |
|
5d7473f14c67
The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents:
15482
diff
changeset
|
1300 | } |
|
5d7473f14c67
The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents:
15482
diff
changeset
|
1301 | |
|
20093
04f3c1dcd2cf
applied changes from 5fda75104115d0a95c1e214b6b3ca18c4dc86a0c
Richard Laager <rlaager@pidgin.im>
parents:
19897
diff
changeset
|
1302 | void |
| 15884 | 1303 | purple_account_request_close(void *ui_handle) |
|
15537
5d7473f14c67
The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents:
15482
diff
changeset
|
1304 | { |
|
5d7473f14c67
The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents:
15482
diff
changeset
|
1305 | GList *l, *l_next; |
|
20093
04f3c1dcd2cf
applied changes from 5fda75104115d0a95c1e214b6b3ca18c4dc86a0c
Richard Laager <rlaager@pidgin.im>
parents:
19897
diff
changeset
|
1306 | |
|
15537
5d7473f14c67
The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents:
15482
diff
changeset
|
1307 | g_return_if_fail(ui_handle != NULL); |
|
20093
04f3c1dcd2cf
applied changes from 5fda75104115d0a95c1e214b6b3ca18c4dc86a0c
Richard Laager <rlaager@pidgin.im>
parents:
19897
diff
changeset
|
1308 | |
|
15537
5d7473f14c67
The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents:
15482
diff
changeset
|
1309 | for (l = handles; l != NULL; l = l_next) { |
| 15884 | 1310 | PurpleAccountRequestInfo *info = l->data; |
|
20093
04f3c1dcd2cf
applied changes from 5fda75104115d0a95c1e214b6b3ca18c4dc86a0c
Richard Laager <rlaager@pidgin.im>
parents:
19897
diff
changeset
|
1311 | |
|
15537
5d7473f14c67
The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents:
15482
diff
changeset
|
1312 | l_next = l->next; |
|
20093
04f3c1dcd2cf
applied changes from 5fda75104115d0a95c1e214b6b3ca18c4dc86a0c
Richard Laager <rlaager@pidgin.im>
parents:
19897
diff
changeset
|
1313 | |
|
15537
5d7473f14c67
The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents:
15482
diff
changeset
|
1314 | if (info->ui_handle == ui_handle) { |
|
5d7473f14c67
The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents:
15482
diff
changeset
|
1315 | handles = g_list_remove(handles, info); |
| 15884 | 1316 | purple_account_request_close_info(info); |
|
15537
5d7473f14c67
The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents:
15482
diff
changeset
|
1317 | } |
|
5d7473f14c67
The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents:
15482
diff
changeset
|
1318 | } |
|
5d7473f14c67
The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents:
15482
diff
changeset
|
1319 | } |
|
5d7473f14c67
The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents:
15482
diff
changeset
|
1320 | |
|
20421
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
1321 | static void |
|
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
1322 | request_auth_cb(void *data) |
|
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
1323 | { |
|
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
1324 | PurpleAccountRequestInfo *info = data; |
|
22177
d3858cc821a8
This makes authorization requests go away when the account is disconnected. It will leak the protocol's user_data, but without an API change, there isn't much that can be done about that. References #4609
Daniel Atallah <datallah@pidgin.im>
parents:
22104
diff
changeset
|
1325 | |
|
d3858cc821a8
This makes authorization requests go away when the account is disconnected. It will leak the protocol's user_data, but without an API change, there isn't much that can be done about that. References #4609
Daniel Atallah <datallah@pidgin.im>
parents:
22104
diff
changeset
|
1326 | handles = g_list_remove(handles, info); |
|
d3858cc821a8
This makes authorization requests go away when the account is disconnected. It will leak the protocol's user_data, but without an API change, there isn't much that can be done about that. References #4609
Daniel Atallah <datallah@pidgin.im>
parents:
22104
diff
changeset
|
1327 | |
|
20421
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
1328 | info->auth_cb(info->userdata); |
|
22177
d3858cc821a8
This makes authorization requests go away when the account is disconnected. It will leak the protocol's user_data, but without an API change, there isn't much that can be done about that. References #4609
Daniel Atallah <datallah@pidgin.im>
parents:
22104
diff
changeset
|
1329 | |
|
20421
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
1330 | purple_signal_emit(purple_accounts_get_handle(), |
|
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
1331 | "account-authorization-granted", info->account, info->user); |
|
22177
d3858cc821a8
This makes authorization requests go away when the account is disconnected. It will leak the protocol's user_data, but without an API change, there isn't much that can be done about that. References #4609
Daniel Atallah <datallah@pidgin.im>
parents:
22104
diff
changeset
|
1332 | |
|
25113
eacb566127a7
Use ref-counting to prevent a crash if request-auth callbacks are called
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25079
diff
changeset
|
1333 | purple_account_request_info_unref(info); |
|
20421
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
1334 | } |
|
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
1335 | |
|
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
1336 | static void |
|
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
1337 | request_deny_cb(void *data) |
|
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
1338 | { |
|
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
1339 | PurpleAccountRequestInfo *info = data; |
|
22177
d3858cc821a8
This makes authorization requests go away when the account is disconnected. It will leak the protocol's user_data, but without an API change, there isn't much that can be done about that. References #4609
Daniel Atallah <datallah@pidgin.im>
parents:
22104
diff
changeset
|
1340 | |
|
d3858cc821a8
This makes authorization requests go away when the account is disconnected. It will leak the protocol's user_data, but without an API change, there isn't much that can be done about that. References #4609
Daniel Atallah <datallah@pidgin.im>
parents:
22104
diff
changeset
|
1341 | handles = g_list_remove(handles, info); |
|
d3858cc821a8
This makes authorization requests go away when the account is disconnected. It will leak the protocol's user_data, but without an API change, there isn't much that can be done about that. References #4609
Daniel Atallah <datallah@pidgin.im>
parents:
22104
diff
changeset
|
1342 | |
|
20421
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
1343 | info->deny_cb(info->userdata); |
|
22177
d3858cc821a8
This makes authorization requests go away when the account is disconnected. It will leak the protocol's user_data, but without an API change, there isn't much that can be done about that. References #4609
Daniel Atallah <datallah@pidgin.im>
parents:
22104
diff
changeset
|
1344 | |
|
20421
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
1345 | purple_signal_emit(purple_accounts_get_handle(), |
|
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
1346 | "account-authorization-denied", info->account, info->user); |
|
22177
d3858cc821a8
This makes authorization requests go away when the account is disconnected. It will leak the protocol's user_data, but without an API change, there isn't much that can be done about that. References #4609
Daniel Atallah <datallah@pidgin.im>
parents:
22104
diff
changeset
|
1347 | |
|
25113
eacb566127a7
Use ref-counting to prevent a crash if request-auth callbacks are called
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25079
diff
changeset
|
1348 | purple_account_request_info_unref(info); |
|
20421
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
1349 | } |
|
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
1350 | |
|
15537
5d7473f14c67
The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents:
15482
diff
changeset
|
1351 | void * |
| 15884 | 1352 | purple_account_request_authorization(PurpleAccount *account, const char *remote_user, |
|
19335
4613b53d5741
Warning fixes in the aftermath of resiak's authorize_cb and deny_cb type fixing.
Daniel Atallah <datallah@pidgin.im>
parents:
18636
diff
changeset
|
1353 | const char *id, const char *alias, const char *message, gboolean on_list, |
|
4613b53d5741
Warning fixes in the aftermath of resiak's authorize_cb and deny_cb type fixing.
Daniel Atallah <datallah@pidgin.im>
parents:
18636
diff
changeset
|
1354 | PurpleAccountRequestAuthorizationCb auth_cb, PurpleAccountRequestAuthorizationCb deny_cb, void *user_data) |
| 15119 | 1355 | { |
| 15884 | 1356 | PurpleAccountUiOps *ui_ops; |
| 1357 | PurpleAccountRequestInfo *info; | |
|
20421
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
1358 | int plugin_return; |
|
15537
5d7473f14c67
The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents:
15482
diff
changeset
|
1359 | |
|
5d7473f14c67
The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents:
15482
diff
changeset
|
1360 | g_return_val_if_fail(account != NULL, NULL); |
|
5d7473f14c67
The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents:
15482
diff
changeset
|
1361 | g_return_val_if_fail(remote_user != NULL, NULL); |
|
5d7473f14c67
The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents:
15482
diff
changeset
|
1362 | |
| 15884 | 1363 | ui_ops = purple_accounts_get_ui_ops(); |
|
15537
5d7473f14c67
The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents:
15482
diff
changeset
|
1364 | |
|
20421
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
1365 | plugin_return = GPOINTER_TO_INT( |
|
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
1366 | purple_signal_emit_return_1(purple_accounts_get_handle(), |
|
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
1367 | "account-authorization-requested", account, remote_user)); |
|
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
1368 | |
|
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
1369 | if (plugin_return > 0) { |
|
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
1370 | auth_cb(user_data); |
|
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
1371 | return NULL; |
|
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
1372 | } else if (plugin_return < 0) { |
|
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
1373 | deny_cb(user_data); |
|
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
1374 | return NULL; |
|
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
1375 | } |
|
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
1376 | |
|
15537
5d7473f14c67
The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents:
15482
diff
changeset
|
1377 | if (ui_ops != NULL && ui_ops->request_authorize != NULL) { |
| 15884 | 1378 | info = g_new0(PurpleAccountRequestInfo, 1); |
| 1379 | info->type = PURPLE_ACCOUNT_REQUEST_AUTHORIZATION; | |
|
15537
5d7473f14c67
The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents:
15482
diff
changeset
|
1380 | info->account = account; |
|
20421
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
1381 | info->auth_cb = auth_cb; |
|
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
1382 | info->deny_cb = deny_cb; |
|
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
1383 | info->userdata = user_data; |
|
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
1384 | info->user = g_strdup(remote_user); |
|
25113
eacb566127a7
Use ref-counting to prevent a crash if request-auth callbacks are called
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25079
diff
changeset
|
1385 | info->ref = 2; /* We hold an extra ref to make sure info remains valid |
|
eacb566127a7
Use ref-counting to prevent a crash if request-auth callbacks are called
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25079
diff
changeset
|
1386 | if any of the callbacks are called synchronously. We |
|
eacb566127a7
Use ref-counting to prevent a crash if request-auth callbacks are called
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25079
diff
changeset
|
1387 | unref it after the function call */ |
|
eacb566127a7
Use ref-counting to prevent a crash if request-auth callbacks are called
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25079
diff
changeset
|
1388 | |
|
15537
5d7473f14c67
The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents:
15482
diff
changeset
|
1389 | info->ui_handle = ui_ops->request_authorize(account, remote_user, id, alias, message, |
|
20421
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
1390 | on_list, request_auth_cb, request_deny_cb, info); |
|
19335
4613b53d5741
Warning fixes in the aftermath of resiak's authorize_cb and deny_cb type fixing.
Daniel Atallah <datallah@pidgin.im>
parents:
18636
diff
changeset
|
1391 | |
|
25113
eacb566127a7
Use ref-counting to prevent a crash if request-auth callbacks are called
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25079
diff
changeset
|
1392 | info = purple_account_request_info_unref(info); |
|
eacb566127a7
Use ref-counting to prevent a crash if request-auth callbacks are called
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25079
diff
changeset
|
1393 | if (info) { |
|
eacb566127a7
Use ref-counting to prevent a crash if request-auth callbacks are called
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25079
diff
changeset
|
1394 | handles = g_list_append(handles, info); |
|
eacb566127a7
Use ref-counting to prevent a crash if request-auth callbacks are called
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25079
diff
changeset
|
1395 | return info->ui_handle; |
|
eacb566127a7
Use ref-counting to prevent a crash if request-auth callbacks are called
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
25079
diff
changeset
|
1396 | } |
|
15537
5d7473f14c67
The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents:
15482
diff
changeset
|
1397 | } |
|
20093
04f3c1dcd2cf
applied changes from 5fda75104115d0a95c1e214b6b3ca18c4dc86a0c
Richard Laager <rlaager@pidgin.im>
parents:
19897
diff
changeset
|
1398 | |
|
15537
5d7473f14c67
The accounts request API now keeps track of a returned ui_handle for authorization requests, which can be closed on demand individually or all-at-once by account. When a connection is destroyed, its associated requests are closed.
Evan Schoenberg <evands@pidgin.im>
parents:
15482
diff
changeset
|
1399 | return NULL; |
| 15119 | 1400 | } |
| 1401 | ||
|
7063
4bfe512a4b8c
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7015
diff
changeset
|
1402 | static void |
| 15884 | 1403 | change_password_cb(PurpleAccount *account, PurpleRequestFields *fields) |
|
7063
4bfe512a4b8c
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7015
diff
changeset
|
1404 | { |
|
4bfe512a4b8c
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7015
diff
changeset
|
1405 | const char *orig_pass, *new_pass_1, *new_pass_2; |
|
4bfe512a4b8c
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7015
diff
changeset
|
1406 | |
| 15884 | 1407 | orig_pass = purple_request_fields_get_string(fields, "password"); |
| 1408 | new_pass_1 = purple_request_fields_get_string(fields, "new_password_1"); | |
| 1409 | new_pass_2 = purple_request_fields_get_string(fields, "new_password_2"); | |
|
7063
4bfe512a4b8c
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7015
diff
changeset
|
1410 | |
|
4bfe512a4b8c
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7015
diff
changeset
|
1411 | if (g_utf8_collate(new_pass_1, new_pass_2)) |
|
4bfe512a4b8c
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7015
diff
changeset
|
1412 | { |
| 15884 | 1413 | purple_notify_error(account, NULL, |
|
7063
4bfe512a4b8c
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7015
diff
changeset
|
1414 | _("New passwords do not match."), NULL); |
|
4bfe512a4b8c
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7015
diff
changeset
|
1415 | |
|
4bfe512a4b8c
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7015
diff
changeset
|
1416 | return; |
|
4bfe512a4b8c
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7015
diff
changeset
|
1417 | } |
|
4bfe512a4b8c
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7015
diff
changeset
|
1418 | |
|
22854
0002c0556d57
Allow changing to or from an empty password when the protocol specifies
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22484
diff
changeset
|
1419 | if ((purple_request_fields_is_field_required(fields, "password") && |
|
0002c0556d57
Allow changing to or from an empty password when the protocol specifies
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22484
diff
changeset
|
1420 | (orig_pass == NULL || *orig_pass == '\0')) || |
|
0002c0556d57
Allow changing to or from an empty password when the protocol specifies
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22484
diff
changeset
|
1421 | (purple_request_fields_is_field_required(fields, "new_password_1") && |
|
0002c0556d57
Allow changing to or from an empty password when the protocol specifies
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22484
diff
changeset
|
1422 | (new_pass_1 == NULL || *new_pass_1 == '\0')) || |
|
0002c0556d57
Allow changing to or from an empty password when the protocol specifies
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22484
diff
changeset
|
1423 | (purple_request_fields_is_field_required(fields, "new_password_2") && |
|
0002c0556d57
Allow changing to or from an empty password when the protocol specifies
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22484
diff
changeset
|
1424 | (new_pass_2 == NULL || *new_pass_2 == '\0'))) |
|
7063
4bfe512a4b8c
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7015
diff
changeset
|
1425 | { |
| 15884 | 1426 | purple_notify_error(account, NULL, |
|
7063
4bfe512a4b8c
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7015
diff
changeset
|
1427 | _("Fill out all fields completely."), NULL); |
|
4bfe512a4b8c
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7015
diff
changeset
|
1428 | return; |
|
4bfe512a4b8c
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7015
diff
changeset
|
1429 | } |
|
4bfe512a4b8c
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7015
diff
changeset
|
1430 | |
| 15884 | 1431 | purple_account_change_password(account, orig_pass, new_pass_1); |
|
7063
4bfe512a4b8c
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7015
diff
changeset
|
1432 | } |
|
4bfe512a4b8c
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7015
diff
changeset
|
1433 | |
|
4bfe512a4b8c
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7015
diff
changeset
|
1434 | void |
| 15884 | 1435 | purple_account_request_change_password(PurpleAccount *account) |
|
7063
4bfe512a4b8c
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7015
diff
changeset
|
1436 | { |
| 15884 | 1437 | PurpleRequestFields *fields; |
| 1438 | PurpleRequestFieldGroup *group; | |
| 1439 | PurpleRequestField *field; | |
|
22854
0002c0556d57
Allow changing to or from an empty password when the protocol specifies
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22484
diff
changeset
|
1440 | PurpleConnection *gc; |
|
0002c0556d57
Allow changing to or from an empty password when the protocol specifies
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22484
diff
changeset
|
1441 | PurplePlugin *prpl = NULL; |
|
0002c0556d57
Allow changing to or from an empty password when the protocol specifies
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22484
diff
changeset
|
1442 | PurplePluginProtocolInfo *prpl_info = NULL; |
|
7063
4bfe512a4b8c
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7015
diff
changeset
|
1443 | char primary[256]; |
|
4bfe512a4b8c
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7015
diff
changeset
|
1444 | |
|
4bfe512a4b8c
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7015
diff
changeset
|
1445 | g_return_if_fail(account != NULL); |
| 15884 | 1446 | g_return_if_fail(purple_account_is_connected(account)); |
| 1447 | ||
|
22854
0002c0556d57
Allow changing to or from an empty password when the protocol specifies
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22484
diff
changeset
|
1448 | gc = purple_account_get_connection(account); |
|
0002c0556d57
Allow changing to or from an empty password when the protocol specifies
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22484
diff
changeset
|
1449 | if (gc != NULL) |
|
0002c0556d57
Allow changing to or from an empty password when the protocol specifies
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22484
diff
changeset
|
1450 | prpl = purple_connection_get_prpl(gc); |
|
0002c0556d57
Allow changing to or from an empty password when the protocol specifies
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22484
diff
changeset
|
1451 | if (prpl != NULL) |
|
0002c0556d57
Allow changing to or from an empty password when the protocol specifies
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22484
diff
changeset
|
1452 | prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); |
|
0002c0556d57
Allow changing to or from an empty password when the protocol specifies
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22484
diff
changeset
|
1453 | |
| 15884 | 1454 | fields = purple_request_fields_new(); |
| 1455 | ||
| 1456 | group = purple_request_field_group_new(NULL); | |
| 1457 | purple_request_fields_add_group(fields, group); | |
| 1458 | ||
| 1459 | field = purple_request_field_string_new("password", _("Original password"), | |
|
7063
4bfe512a4b8c
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7015
diff
changeset
|
1460 | NULL, FALSE); |
| 15884 | 1461 | purple_request_field_string_set_masked(field, TRUE); |
|
22854
0002c0556d57
Allow changing to or from an empty password when the protocol specifies
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22484
diff
changeset
|
1462 | if (!(prpl_info && (prpl_info->options | OPT_PROTO_PASSWORD_OPTIONAL))) |
|
0002c0556d57
Allow changing to or from an empty password when the protocol specifies
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22484
diff
changeset
|
1463 | purple_request_field_set_required(field, TRUE); |
| 15884 | 1464 | purple_request_field_group_add_field(group, field); |
| 1465 | ||
| 1466 | field = purple_request_field_string_new("new_password_1", | |
|
7063
4bfe512a4b8c
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7015
diff
changeset
|
1467 | _("New password"), |
|
4bfe512a4b8c
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7015
diff
changeset
|
1468 | NULL, FALSE); |
| 15884 | 1469 | purple_request_field_string_set_masked(field, TRUE); |
|
22854
0002c0556d57
Allow changing to or from an empty password when the protocol specifies
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22484
diff
changeset
|
1470 | if (!(prpl_info && (prpl_info->options | OPT_PROTO_PASSWORD_OPTIONAL))) |
|
0002c0556d57
Allow changing to or from an empty password when the protocol specifies
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22484
diff
changeset
|
1471 | purple_request_field_set_required(field, TRUE); |
| 15884 | 1472 | purple_request_field_group_add_field(group, field); |
| 1473 | ||
| 1474 | field = purple_request_field_string_new("new_password_2", | |
|
7063
4bfe512a4b8c
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7015
diff
changeset
|
1475 | _("New password (again)"), |
|
4bfe512a4b8c
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7015
diff
changeset
|
1476 | NULL, FALSE); |
| 15884 | 1477 | purple_request_field_string_set_masked(field, TRUE); |
|
22854
0002c0556d57
Allow changing to or from an empty password when the protocol specifies
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22484
diff
changeset
|
1478 | if (!(prpl_info && (prpl_info->options | OPT_PROTO_PASSWORD_OPTIONAL))) |
|
0002c0556d57
Allow changing to or from an empty password when the protocol specifies
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22484
diff
changeset
|
1479 | purple_request_field_set_required(field, TRUE); |
| 15884 | 1480 | purple_request_field_group_add_field(group, field); |
|
7063
4bfe512a4b8c
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7015
diff
changeset
|
1481 | |
|
4bfe512a4b8c
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7015
diff
changeset
|
1482 | g_snprintf(primary, sizeof(primary), _("Change password for %s"), |
| 15884 | 1483 | purple_account_get_username(account)); |
|
7063
4bfe512a4b8c
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7015
diff
changeset
|
1484 | |
|
7755
a08288ab4e5f
[gaim-migrate @ 8400]
Mark Doliner <markdoliner@pidgin.im>
parents:
7654
diff
changeset
|
1485 | /* I'm sticking this somewhere in the code: bologna */ |
|
a08288ab4e5f
[gaim-migrate @ 8400]
Mark Doliner <markdoliner@pidgin.im>
parents:
7654
diff
changeset
|
1486 | |
| 15884 | 1487 | purple_request_fields(purple_account_get_connection(account), |
|
7063
4bfe512a4b8c
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7015
diff
changeset
|
1488 | NULL, |
|
4bfe512a4b8c
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7015
diff
changeset
|
1489 | primary, |
|
4bfe512a4b8c
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7015
diff
changeset
|
1490 | _("Please enter your current password and your " |
|
4bfe512a4b8c
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7015
diff
changeset
|
1491 | "new password."), |
|
4bfe512a4b8c
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7015
diff
changeset
|
1492 | fields, |
|
4bfe512a4b8c
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7015
diff
changeset
|
1493 | _("OK"), G_CALLBACK(change_password_cb), |
|
4bfe512a4b8c
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7015
diff
changeset
|
1494 | _("Cancel"), NULL, |
|
16490
68c22924d66b
Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents:
16180
diff
changeset
|
1495 | account, NULL, NULL, |
|
7063
4bfe512a4b8c
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7015
diff
changeset
|
1496 | account); |
|
4bfe512a4b8c
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7015
diff
changeset
|
1497 | } |
|
4bfe512a4b8c
[gaim-migrate @ 7627]
Christian Hammond <chipx86@chipx86.com>
parents:
7015
diff
changeset
|
1498 | |
|
7067
c57295414efa
[gaim-migrate @ 7631]
Christian Hammond <chipx86@chipx86.com>
parents:
7063
diff
changeset
|
1499 | static void |
| 15884 | 1500 | set_user_info_cb(PurpleAccount *account, const char *user_info) |
|
7067
c57295414efa
[gaim-migrate @ 7631]
Christian Hammond <chipx86@chipx86.com>
parents:
7063
diff
changeset
|
1501 | { |
| 15884 | 1502 | PurpleConnection *gc; |
| 1503 | ||
| 1504 | purple_account_set_user_info(account, user_info); | |
| 1505 | gc = purple_account_get_connection(account); | |
|
14669
df3f48ab4aff
[gaim-migrate @ 17335]
Mark Doliner <markdoliner@pidgin.im>
parents:
14254
diff
changeset
|
1506 | serv_set_info(gc, user_info); |
|
7067
c57295414efa
[gaim-migrate @ 7631]
Christian Hammond <chipx86@chipx86.com>
parents:
7063
diff
changeset
|
1507 | } |
|
c57295414efa
[gaim-migrate @ 7631]
Christian Hammond <chipx86@chipx86.com>
parents:
7063
diff
changeset
|
1508 | |
|
c57295414efa
[gaim-migrate @ 7631]
Christian Hammond <chipx86@chipx86.com>
parents:
7063
diff
changeset
|
1509 | void |
| 15884 | 1510 | purple_account_request_change_user_info(PurpleAccount *account) |
|
7067
c57295414efa
[gaim-migrate @ 7631]
Christian Hammond <chipx86@chipx86.com>
parents:
7063
diff
changeset
|
1511 | { |
| 15884 | 1512 | PurpleConnection *gc; |
|
7067
c57295414efa
[gaim-migrate @ 7631]
Christian Hammond <chipx86@chipx86.com>
parents:
7063
diff
changeset
|
1513 | char primary[256]; |
|
c57295414efa
[gaim-migrate @ 7631]
Christian Hammond <chipx86@chipx86.com>
parents:
7063
diff
changeset
|
1514 | |
|
c57295414efa
[gaim-migrate @ 7631]
Christian Hammond <chipx86@chipx86.com>
parents:
7063
diff
changeset
|
1515 | g_return_if_fail(account != NULL); |
| 15884 | 1516 | g_return_if_fail(purple_account_is_connected(account)); |
| 1517 | ||
| 1518 | gc = purple_account_get_connection(account); | |
| 8697 | 1519 | |
|
7067
c57295414efa
[gaim-migrate @ 7631]
Christian Hammond <chipx86@chipx86.com>
parents:
7063
diff
changeset
|
1520 | g_snprintf(primary, sizeof(primary), |
|
c57295414efa
[gaim-migrate @ 7631]
Christian Hammond <chipx86@chipx86.com>
parents:
7063
diff
changeset
|
1521 | _("Change user information for %s"), |
| 15884 | 1522 | purple_account_get_username(account)); |
| 1523 | ||
| 1524 | purple_request_input(gc, _("Set User Info"), primary, NULL, | |
| 1525 | purple_account_get_user_info(account), | |
| 8697 | 1526 | TRUE, FALSE, ((gc != NULL) && |
| 15884 | 1527 | (gc->flags & PURPLE_CONNECTION_HTML) ? "html" : NULL), |
|
7067
c57295414efa
[gaim-migrate @ 7631]
Christian Hammond <chipx86@chipx86.com>
parents:
7063
diff
changeset
|
1528 | _("Save"), G_CALLBACK(set_user_info_cb), |
|
16490
68c22924d66b
Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents:
16180
diff
changeset
|
1529 | _("Cancel"), NULL, |
|
68c22924d66b
Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents:
16180
diff
changeset
|
1530 | account, NULL, NULL, |
|
68c22924d66b
Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evands@pidgin.im>
parents:
16180
diff
changeset
|
1531 | account); |
|
7067
c57295414efa
[gaim-migrate @ 7631]
Christian Hammond <chipx86@chipx86.com>
parents:
7063
diff
changeset
|
1532 | } |
|
c57295414efa
[gaim-migrate @ 7631]
Christian Hammond <chipx86@chipx86.com>
parents:
7063
diff
changeset
|
1533 | |
|
7015
bea9111282b3
[gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
1534 | void |
| 15884 | 1535 | purple_account_set_username(PurpleAccount *account, const char *username) |
| 5563 | 1536 | { |
|
27969
ed5bf3c3e328
Add blist ui-ops to overload the saving of data to blist.xml. Closes #9630.
Jan Kaluza <hanzz.k@gmail.com>
parents:
27638
diff
changeset
|
1537 | PurpleBlistUiOps *blist_ops; |
|
ed5bf3c3e328
Add blist ui-ops to overload the saving of data to blist.xml. Closes #9630.
Jan Kaluza <hanzz.k@gmail.com>
parents:
27638
diff
changeset
|
1538 | |
|
5711
5aa3984f5f80
[gaim-migrate @ 6132]
Christian Hammond <chipx86@chipx86.com>
parents:
5710
diff
changeset
|
1539 | g_return_if_fail(account != NULL); |
| 5563 | 1540 | |
|
10740
a1cb6b819a21
[gaim-migrate @ 12342]
Mark Doliner <markdoliner@pidgin.im>
parents:
10738
diff
changeset
|
1541 | g_free(account->username); |
|
14097
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
13735
diff
changeset
|
1542 | account->username = g_strdup(username); |
|
5573
633880e3f137
[gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents:
5565
diff
changeset
|
1543 | |
|
633880e3f137
[gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents:
5565
diff
changeset
|
1544 | schedule_accounts_save(); |
| 15163 | 1545 | |
| 1546 | /* if the name changes, we should re-write the buddy list | |
| 1547 | * to disk with the new name */ | |
|
27969
ed5bf3c3e328
Add blist ui-ops to overload the saving of data to blist.xml. Closes #9630.
Jan Kaluza <hanzz.k@gmail.com>
parents:
27638
diff
changeset
|
1548 | blist_ops = purple_blist_get_ui_ops(); |
|
ed5bf3c3e328
Add blist ui-ops to overload the saving of data to blist.xml. Closes #9630.
Jan Kaluza <hanzz.k@gmail.com>
parents:
27638
diff
changeset
|
1549 | if (blist_ops != NULL && blist_ops->save_account != NULL) |
|
ed5bf3c3e328
Add blist ui-ops to overload the saving of data to blist.xml. Closes #9630.
Jan Kaluza <hanzz.k@gmail.com>
parents:
27638
diff
changeset
|
1550 | blist_ops->save_account(account); |
| 5563 | 1551 | } |
| 1552 | ||
| 1553 | void | |
| 15884 | 1554 | purple_account_set_password(PurpleAccount *account, const char *password) |
| 5563 | 1555 | { |
|
5777
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
1556 | g_return_if_fail(account != NULL); |
| 5563 | 1557 | |
|
10740
a1cb6b819a21
[gaim-migrate @ 12342]
Mark Doliner <markdoliner@pidgin.im>
parents:
10738
diff
changeset
|
1558 | g_free(account->password); |
|
14097
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
13735
diff
changeset
|
1559 | account->password = g_strdup(password); |
|
5573
633880e3f137
[gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents:
5565
diff
changeset
|
1560 | |
|
633880e3f137
[gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents:
5565
diff
changeset
|
1561 | schedule_accounts_save(); |
| 5563 | 1562 | } |
| 1563 | ||
| 1564 | void | |
| 15884 | 1565 | purple_account_set_alias(PurpleAccount *account, const char *alias) |
| 5563 | 1566 | { |
| 1567 | g_return_if_fail(account != NULL); | |
| 1568 | ||
|
13731
220d399fc026
[gaim-migrate @ 16140]
Mark Doliner <markdoliner@pidgin.im>
parents:
13678
diff
changeset
|
1569 | /* |
|
220d399fc026
[gaim-migrate @ 16140]
Mark Doliner <markdoliner@pidgin.im>
parents:
13678
diff
changeset
|
1570 | * Do nothing if alias and account->alias are both NULL. Or if |
|
220d399fc026
[gaim-migrate @ 16140]
Mark Doliner <markdoliner@pidgin.im>
parents:
13678
diff
changeset
|
1571 | * they're the exact same string. |
|
220d399fc026
[gaim-migrate @ 16140]
Mark Doliner <markdoliner@pidgin.im>
parents:
13678
diff
changeset
|
1572 | */ |
|
220d399fc026
[gaim-migrate @ 16140]
Mark Doliner <markdoliner@pidgin.im>
parents:
13678
diff
changeset
|
1573 | if (alias == account->alias) |
|
220d399fc026
[gaim-migrate @ 16140]
Mark Doliner <markdoliner@pidgin.im>
parents:
13678
diff
changeset
|
1574 | return; |
|
220d399fc026
[gaim-migrate @ 16140]
Mark Doliner <markdoliner@pidgin.im>
parents:
13678
diff
changeset
|
1575 | |
|
13282
83e33fe74de3
[gaim-migrate @ 15647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13120
diff
changeset
|
1576 | if ((!alias && account->alias) || (alias && !account->alias) || |
|
83e33fe74de3
[gaim-migrate @ 15647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13120
diff
changeset
|
1577 | g_utf8_collate(account->alias, alias)) |
|
83e33fe74de3
[gaim-migrate @ 15647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13120
diff
changeset
|
1578 | { |
|
83e33fe74de3
[gaim-migrate @ 15647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13120
diff
changeset
|
1579 | char *old = account->alias; |
|
83e33fe74de3
[gaim-migrate @ 15647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13120
diff
changeset
|
1580 | |
|
14097
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
13735
diff
changeset
|
1581 | account->alias = g_strdup(alias); |
| 15884 | 1582 | purple_signal_emit(purple_accounts_get_handle(), "account-alias-changed", |
|
13282
83e33fe74de3
[gaim-migrate @ 15647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13120
diff
changeset
|
1583 | account, old); |
|
83e33fe74de3
[gaim-migrate @ 15647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13120
diff
changeset
|
1584 | g_free(old); |
|
83e33fe74de3
[gaim-migrate @ 15647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13120
diff
changeset
|
1585 | |
|
83e33fe74de3
[gaim-migrate @ 15647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13120
diff
changeset
|
1586 | schedule_accounts_save(); |
|
83e33fe74de3
[gaim-migrate @ 15647]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13120
diff
changeset
|
1587 | } |
| 5563 | 1588 | } |
| 1589 | ||
| 1590 | void | |
| 15884 | 1591 | purple_account_set_user_info(PurpleAccount *account, const char *user_info) |
| 5563 | 1592 | { |
|
5777
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
1593 | g_return_if_fail(account != NULL); |
| 5563 | 1594 | |
|
10740
a1cb6b819a21
[gaim-migrate @ 12342]
Mark Doliner <markdoliner@pidgin.im>
parents:
10738
diff
changeset
|
1595 | g_free(account->user_info); |
|
14097
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
13735
diff
changeset
|
1596 | account->user_info = g_strdup(user_info); |
|
5573
633880e3f137
[gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents:
5565
diff
changeset
|
1597 | |
|
633880e3f137
[gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents:
5565
diff
changeset
|
1598 | schedule_accounts_save(); |
| 5563 | 1599 | } |
| 1600 | ||
| 15884 | 1601 | void purple_account_set_buddy_icon_path(PurpleAccount *account, const char *path) |
|
15132
672c39839af1
[gaim-migrate @ 17854]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15119
diff
changeset
|
1602 | { |
|
672c39839af1
[gaim-migrate @ 17854]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15119
diff
changeset
|
1603 | g_return_if_fail(account != NULL); |
|
672c39839af1
[gaim-migrate @ 17854]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15119
diff
changeset
|
1604 | |
|
672c39839af1
[gaim-migrate @ 17854]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15119
diff
changeset
|
1605 | g_free(account->buddy_icon_path); |
|
672c39839af1
[gaim-migrate @ 17854]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15119
diff
changeset
|
1606 | account->buddy_icon_path = g_strdup(path); |
|
672c39839af1
[gaim-migrate @ 17854]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15119
diff
changeset
|
1607 | |
|
672c39839af1
[gaim-migrate @ 17854]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15119
diff
changeset
|
1608 | schedule_accounts_save(); |
|
672c39839af1
[gaim-migrate @ 17854]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15119
diff
changeset
|
1609 | } |
|
672c39839af1
[gaim-migrate @ 17854]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15119
diff
changeset
|
1610 | |
| 5563 | 1611 | void |
| 15884 | 1612 | purple_account_set_protocol_id(PurpleAccount *account, const char *protocol_id) |
|
5943
8a052155157a
[gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents:
5942
diff
changeset
|
1613 | { |
|
8a052155157a
[gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents:
5942
diff
changeset
|
1614 | g_return_if_fail(account != NULL); |
|
8a052155157a
[gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents:
5942
diff
changeset
|
1615 | g_return_if_fail(protocol_id != NULL); |
|
5573
633880e3f137
[gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents:
5565
diff
changeset
|
1616 | |
|
10740
a1cb6b819a21
[gaim-migrate @ 12342]
Mark Doliner <markdoliner@pidgin.im>
parents:
10738
diff
changeset
|
1617 | g_free(account->protocol_id); |
|
5943
8a052155157a
[gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents:
5942
diff
changeset
|
1618 | account->protocol_id = g_strdup(protocol_id); |
|
5665
0115e8068f51
[gaim-migrate @ 6081]
Christian Hammond <chipx86@chipx86.com>
parents:
5659
diff
changeset
|
1619 | |
|
5573
633880e3f137
[gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents:
5565
diff
changeset
|
1620 | schedule_accounts_save(); |
| 5563 | 1621 | } |
| 1622 | ||
| 1623 | void | |
| 15884 | 1624 | purple_account_set_connection(PurpleAccount *account, PurpleConnection *gc) |
| 5563 | 1625 | { |
| 1626 | g_return_if_fail(account != NULL); | |
| 1627 | ||
| 1628 | account->gc = gc; | |
| 1629 | } | |
| 1630 | ||
| 1631 | void | |
| 15884 | 1632 | purple_account_set_remember_password(PurpleAccount *account, gboolean value) |
| 5563 | 1633 | { |
| 1634 | g_return_if_fail(account != NULL); | |
| 1635 | ||
| 1636 | account->remember_pass = value; | |
|
5573
633880e3f137
[gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents:
5565
diff
changeset
|
1637 | |
|
633880e3f137
[gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents:
5565
diff
changeset
|
1638 | schedule_accounts_save(); |
| 5563 | 1639 | } |
| 1640 | ||
| 1641 | void | |
| 15884 | 1642 | purple_account_set_check_mail(PurpleAccount *account, gboolean value) |
|
5659
b263ee0ceaac
[gaim-migrate @ 6073]
Christian Hammond <chipx86@chipx86.com>
parents:
5643
diff
changeset
|
1643 | { |
|
b263ee0ceaac
[gaim-migrate @ 6073]
Christian Hammond <chipx86@chipx86.com>
parents:
5643
diff
changeset
|
1644 | g_return_if_fail(account != NULL); |
|
b263ee0ceaac
[gaim-migrate @ 6073]
Christian Hammond <chipx86@chipx86.com>
parents:
5643
diff
changeset
|
1645 | |
| 15884 | 1646 | purple_account_set_bool(account, "check-mail", value); |
|
5659
b263ee0ceaac
[gaim-migrate @ 6073]
Christian Hammond <chipx86@chipx86.com>
parents:
5643
diff
changeset
|
1647 | } |
|
b263ee0ceaac
[gaim-migrate @ 6073]
Christian Hammond <chipx86@chipx86.com>
parents:
5643
diff
changeset
|
1648 | |
|
b263ee0ceaac
[gaim-migrate @ 6073]
Christian Hammond <chipx86@chipx86.com>
parents:
5643
diff
changeset
|
1649 | void |
| 15884 | 1650 | purple_account_set_enabled(PurpleAccount *account, const char *ui, |
| 10400 | 1651 | gboolean value) |
|
5779
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
1652 | { |
| 15884 | 1653 | PurpleConnection *gc; |
| 12070 | 1654 | gboolean was_enabled = FALSE; |
|
11638
1821b40269a3
[gaim-migrate @ 13914]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11628
diff
changeset
|
1655 | |
|
5779
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
1656 | g_return_if_fail(account != NULL); |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
1657 | g_return_if_fail(ui != NULL); |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
1658 | |
| 15884 | 1659 | was_enabled = purple_account_get_enabled(account, ui); |
| 1660 | ||
| 1661 | purple_account_set_ui_bool(account, ui, "auto-login", value); | |
| 1662 | gc = purple_account_get_connection(account); | |
|
11638
1821b40269a3
[gaim-migrate @ 13914]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11628
diff
changeset
|
1663 | |
| 12070 | 1664 | if(was_enabled && !value) |
| 15884 | 1665 | purple_signal_emit(purple_accounts_get_handle(), "account-disabled", account); |
| 12070 | 1666 | else if(!was_enabled && value) |
| 15884 | 1667 | purple_signal_emit(purple_accounts_get_handle(), "account-enabled", account); |
| 12070 | 1668 | |
|
11638
1821b40269a3
[gaim-migrate @ 13914]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11628
diff
changeset
|
1669 | if ((gc != NULL) && (gc->wants_to_die == TRUE)) |
|
1821b40269a3
[gaim-migrate @ 13914]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11628
diff
changeset
|
1670 | return; |
|
1821b40269a3
[gaim-migrate @ 13914]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11628
diff
changeset
|
1671 | |
| 15884 | 1672 | if (value && purple_presence_is_online(account->presence)) |
| 1673 | purple_account_connect(account); | |
| 1674 | else if (!value && !purple_account_is_disconnected(account)) | |
| 1675 | purple_account_disconnect(account); | |
|
5779
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
1676 | } |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
1677 | |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
1678 | void |
| 15884 | 1679 | purple_account_set_proxy_info(PurpleAccount *account, PurpleProxyInfo *info) |
|
5681
514fbc5374dc
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5666
diff
changeset
|
1680 | { |
|
514fbc5374dc
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5666
diff
changeset
|
1681 | g_return_if_fail(account != NULL); |
|
514fbc5374dc
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5666
diff
changeset
|
1682 | |
|
5695
d0352e790c0a
[gaim-migrate @ 6116]
Christian Hammond <chipx86@chipx86.com>
parents:
5694
diff
changeset
|
1683 | if (account->proxy_info != NULL) |
| 15884 | 1684 | purple_proxy_info_destroy(account->proxy_info); |
|
5695
d0352e790c0a
[gaim-migrate @ 6116]
Christian Hammond <chipx86@chipx86.com>
parents:
5694
diff
changeset
|
1685 | |
|
5681
514fbc5374dc
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5666
diff
changeset
|
1686 | account->proxy_info = info; |
|
514fbc5374dc
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5666
diff
changeset
|
1687 | |
|
514fbc5374dc
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5666
diff
changeset
|
1688 | schedule_accounts_save(); |
|
514fbc5374dc
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5666
diff
changeset
|
1689 | } |
|
514fbc5374dc
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5666
diff
changeset
|
1690 | |
|
514fbc5374dc
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5666
diff
changeset
|
1691 | void |
| 15884 | 1692 | purple_account_set_status_types(PurpleAccount *account, GList *status_types) |
|
9944
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
1693 | { |
|
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
1694 | g_return_if_fail(account != NULL); |
|
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
1695 | |
| 14724 | 1696 | /* Out with the old... */ |
|
9944
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
1697 | if (account->status_types != NULL) |
|
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
1698 | { |
| 15884 | 1699 | g_list_foreach(account->status_types, (GFunc)purple_status_type_destroy, NULL); |
|
9944
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
1700 | g_list_free(account->status_types); |
|
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
1701 | } |
|
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
1702 | |
|
10005
1d711ab1de4e
[gaim-migrate @ 10922]
Mark Doliner <markdoliner@pidgin.im>
parents:
9989
diff
changeset
|
1703 | /* In with the new... */ |
|
9944
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
1704 | account->status_types = status_types; |
|
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
1705 | } |
|
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
1706 | |
|
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
1707 | void |
| 15884 | 1708 | purple_account_set_status(PurpleAccount *account, const char *status_id, |
|
9944
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
1709 | gboolean active, ...) |
|
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
1710 | { |
|
14705
c7b02232f020
[gaim-migrate @ 17389]
Mark Doliner <markdoliner@pidgin.im>
parents:
14669
diff
changeset
|
1711 | GList *attrs = NULL; |
|
c7b02232f020
[gaim-migrate @ 17389]
Mark Doliner <markdoliner@pidgin.im>
parents:
14669
diff
changeset
|
1712 | const gchar *id; |
|
c7b02232f020
[gaim-migrate @ 17389]
Mark Doliner <markdoliner@pidgin.im>
parents:
14669
diff
changeset
|
1713 | gpointer data; |
|
10738
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
1714 | va_list args; |
|
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
1715 | |
|
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
1716 | va_start(args, active); |
|
14705
c7b02232f020
[gaim-migrate @ 17389]
Mark Doliner <markdoliner@pidgin.im>
parents:
14669
diff
changeset
|
1717 | while ((id = va_arg(args, const char *)) != NULL) |
|
11249
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
1718 | { |
|
14705
c7b02232f020
[gaim-migrate @ 17389]
Mark Doliner <markdoliner@pidgin.im>
parents:
14669
diff
changeset
|
1719 | attrs = g_list_append(attrs, (char *)id); |
|
c7b02232f020
[gaim-migrate @ 17389]
Mark Doliner <markdoliner@pidgin.im>
parents:
14669
diff
changeset
|
1720 | data = va_arg(args, void *); |
|
c7b02232f020
[gaim-migrate @ 17389]
Mark Doliner <markdoliner@pidgin.im>
parents:
14669
diff
changeset
|
1721 | attrs = g_list_append(attrs, data); |
|
11249
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
1722 | } |
| 15884 | 1723 | purple_account_set_status_list(account, status_id, active, attrs); |
|
11249
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
1724 | g_list_free(attrs); |
|
14705
c7b02232f020
[gaim-migrate @ 17389]
Mark Doliner <markdoliner@pidgin.im>
parents:
14669
diff
changeset
|
1725 | va_end(args); |
|
11249
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
1726 | } |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
1727 | |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
1728 | void |
| 15884 | 1729 | purple_account_set_status_list(PurpleAccount *account, const char *status_id, |
|
11249
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
1730 | gboolean active, GList *attrs) |
|
efc82f3e1bd3
[gaim-migrate @ 13418]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11247
diff
changeset
|
1731 | { |
| 15884 | 1732 | PurpleStatus *status; |
|
9944
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
1733 | |
|
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
1734 | g_return_if_fail(account != NULL); |
|
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
1735 | g_return_if_fail(status_id != NULL); |
|
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
1736 | |
| 15884 | 1737 | status = purple_account_get_status(account, status_id); |
|
9944
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
1738 | if (status == NULL) |
|
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
1739 | { |
| 15884 | 1740 | purple_debug_error("account", |
|
22055
95cdc03c44be
Infinitesimally better debug message
Mark Doliner <markdoliner@pidgin.im>
parents:
21961
diff
changeset
|
1741 | "Invalid status ID '%s' for account %s (%s)\n", |
| 15884 | 1742 | status_id, purple_account_get_username(account), |
| 1743 | purple_account_get_protocol_id(account)); | |
|
9944
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
1744 | return; |
|
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
1745 | } |
|
10720
e8c25145480c
[gaim-migrate @ 12318]
Mark Doliner <markdoliner@pidgin.im>
parents:
10714
diff
changeset
|
1746 | |
| 15884 | 1747 | if (active || purple_status_is_independent(status)) |
| 1748 | purple_status_set_active_with_attrs_list(status, active, attrs); | |
|
10862
74aef8a7afcb
[gaim-migrate @ 12545]
Mark Doliner <markdoliner@pidgin.im>
parents:
10774
diff
changeset
|
1749 | |
|
74aef8a7afcb
[gaim-migrate @ 12545]
Mark Doliner <markdoliner@pidgin.im>
parents:
10774
diff
changeset
|
1750 | /* |
|
74aef8a7afcb
[gaim-migrate @ 12545]
Mark Doliner <markdoliner@pidgin.im>
parents:
10774
diff
changeset
|
1751 | * Our current statuses are saved to accounts.xml (so that when we |
|
74aef8a7afcb
[gaim-migrate @ 12545]
Mark Doliner <markdoliner@pidgin.im>
parents:
10774
diff
changeset
|
1752 | * reconnect, we go back to the previous status). |
|
74aef8a7afcb
[gaim-migrate @ 12545]
Mark Doliner <markdoliner@pidgin.im>
parents:
10774
diff
changeset
|
1753 | */ |
|
74aef8a7afcb
[gaim-migrate @ 12545]
Mark Doliner <markdoliner@pidgin.im>
parents:
10774
diff
changeset
|
1754 | schedule_accounts_save(); |
|
9944
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
1755 | } |
|
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
1756 | |
|
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
1757 | void |
| 15884 | 1758 | purple_account_clear_settings(PurpleAccount *account) |
|
5694
46768356e6a1
[gaim-migrate @ 6115]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
1759 | { |
|
46768356e6a1
[gaim-migrate @ 6115]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
1760 | g_return_if_fail(account != NULL); |
|
46768356e6a1
[gaim-migrate @ 6115]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
1761 | |
|
46768356e6a1
[gaim-migrate @ 6115]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
1762 | g_hash_table_destroy(account->settings); |
|
46768356e6a1
[gaim-migrate @ 6115]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
1763 | |
|
46768356e6a1
[gaim-migrate @ 6115]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
1764 | account->settings = g_hash_table_new_full(g_str_hash, g_str_equal, |
|
5794
ebdbb7dc6658
[gaim-migrate @ 6219]
Christian Hammond <chipx86@chipx86.com>
parents:
5792
diff
changeset
|
1765 | g_free, delete_setting); |
|
5694
46768356e6a1
[gaim-migrate @ 6115]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
1766 | } |
|
46768356e6a1
[gaim-migrate @ 6115]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
1767 | |
|
46768356e6a1
[gaim-migrate @ 6115]
Christian Hammond <chipx86@chipx86.com>
parents:
5681
diff
changeset
|
1768 | void |
|
27562
2e34a10e7135
Migrate Yahoo! JAPAN accounts to the new prpl (in theory). This also adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
27497
diff
changeset
|
1769 | purple_account_remove_setting(PurpleAccount *account, const char *setting) |
|
2e34a10e7135
Migrate Yahoo! JAPAN accounts to the new prpl (in theory). This also adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
27497
diff
changeset
|
1770 | { |
|
2e34a10e7135
Migrate Yahoo! JAPAN accounts to the new prpl (in theory). This also adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
27497
diff
changeset
|
1771 | g_return_if_fail(account != NULL); |
|
2e34a10e7135
Migrate Yahoo! JAPAN accounts to the new prpl (in theory). This also adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
27497
diff
changeset
|
1772 | g_return_if_fail(setting != NULL); |
|
2e34a10e7135
Migrate Yahoo! JAPAN accounts to the new prpl (in theory). This also adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
27497
diff
changeset
|
1773 | |
|
2e34a10e7135
Migrate Yahoo! JAPAN accounts to the new prpl (in theory). This also adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
27497
diff
changeset
|
1774 | g_hash_table_remove(account->settings, setting); |
|
2e34a10e7135
Migrate Yahoo! JAPAN accounts to the new prpl (in theory). This also adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
27497
diff
changeset
|
1775 | } |
|
2e34a10e7135
Migrate Yahoo! JAPAN accounts to the new prpl (in theory). This also adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
27497
diff
changeset
|
1776 | |
|
2e34a10e7135
Migrate Yahoo! JAPAN accounts to the new prpl (in theory). This also adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
27497
diff
changeset
|
1777 | void |
| 15884 | 1778 | purple_account_set_int(PurpleAccount *account, const char *name, int value) |
| 5563 | 1779 | { |
| 15884 | 1780 | PurpleAccountSetting *setting; |
| 5563 | 1781 | |
| 1782 | g_return_if_fail(account != NULL); | |
| 1783 | g_return_if_fail(name != NULL); | |
| 1784 | ||
| 15884 | 1785 | setting = g_new0(PurpleAccountSetting, 1); |
| 1786 | ||
| 1787 | setting->type = PURPLE_PREF_INT; | |
| 5563 | 1788 | setting->value.integer = value; |
| 1789 | ||
| 1790 | g_hash_table_insert(account->settings, g_strdup(name), setting); | |
|
5573
633880e3f137
[gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents:
5565
diff
changeset
|
1791 | |
|
633880e3f137
[gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents:
5565
diff
changeset
|
1792 | schedule_accounts_save(); |
| 5563 | 1793 | } |
| 1794 | ||
| 1795 | void | |
| 15884 | 1796 | purple_account_set_string(PurpleAccount *account, const char *name, |
| 5563 | 1797 | const char *value) |
| 1798 | { | |
| 15884 | 1799 | PurpleAccountSetting *setting; |
| 5563 | 1800 | |
| 1801 | g_return_if_fail(account != NULL); | |
| 1802 | g_return_if_fail(name != NULL); | |
| 1803 | ||
| 15884 | 1804 | setting = g_new0(PurpleAccountSetting, 1); |
| 1805 | ||
| 1806 | setting->type = PURPLE_PREF_STRING; | |
| 5563 | 1807 | setting->value.string = g_strdup(value); |
| 1808 | ||
| 1809 | g_hash_table_insert(account->settings, g_strdup(name), setting); | |
|
5573
633880e3f137
[gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents:
5565
diff
changeset
|
1810 | |
|
633880e3f137
[gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents:
5565
diff
changeset
|
1811 | schedule_accounts_save(); |
| 5563 | 1812 | } |
| 1813 | ||
| 1814 | void | |
| 15884 | 1815 | purple_account_set_bool(PurpleAccount *account, const char *name, gboolean value) |
| 5563 | 1816 | { |
| 15884 | 1817 | PurpleAccountSetting *setting; |
| 5563 | 1818 | |
| 1819 | g_return_if_fail(account != NULL); | |
| 1820 | g_return_if_fail(name != NULL); | |
| 1821 | ||
| 15884 | 1822 | setting = g_new0(PurpleAccountSetting, 1); |
| 1823 | ||
| 1824 | setting->type = PURPLE_PREF_BOOLEAN; | |
|
20246
161dd7a7f73a
applied changes from 7a436ba53de6adebccf4e920ca62d544e13b1094
Luke Schierer <lschiere@pidgin.im>
parents:
20147
diff
changeset
|
1825 | setting->value.boolean = value; |
| 5563 | 1826 | |
| 1827 | g_hash_table_insert(account->settings, g_strdup(name), setting); | |
|
5573
633880e3f137
[gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents:
5565
diff
changeset
|
1828 | |
|
633880e3f137
[gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents:
5565
diff
changeset
|
1829 | schedule_accounts_save(); |
| 5563 | 1830 | } |
| 1831 | ||
|
5779
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
1832 | static GHashTable * |
| 15884 | 1833 | get_ui_settings_table(PurpleAccount *account, const char *ui) |
|
5779
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
1834 | { |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
1835 | GHashTable *table; |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
1836 | |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
1837 | table = g_hash_table_lookup(account->ui_settings, ui); |
|
5979
d51d697d27fb
[gaim-migrate @ 6426]
Christian Hammond <chipx86@chipx86.com>
parents:
5977
diff
changeset
|
1838 | |
|
5779
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
1839 | if (table == NULL) { |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
1840 | table = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, |
|
5794
ebdbb7dc6658
[gaim-migrate @ 6219]
Christian Hammond <chipx86@chipx86.com>
parents:
5792
diff
changeset
|
1841 | delete_setting); |
|
5779
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
1842 | g_hash_table_insert(account->ui_settings, g_strdup(ui), table); |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
1843 | } |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
1844 | |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
1845 | return table; |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
1846 | } |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
1847 | |
|
5777
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
1848 | void |
| 15884 | 1849 | purple_account_set_ui_int(PurpleAccount *account, const char *ui, |
|
5777
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
1850 | const char *name, int value) |
|
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
1851 | { |
| 15884 | 1852 | PurpleAccountSetting *setting; |
|
5779
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
1853 | GHashTable *table; |
|
5777
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
1854 | |
|
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
1855 | g_return_if_fail(account != NULL); |
|
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
1856 | g_return_if_fail(ui != NULL); |
|
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
1857 | g_return_if_fail(name != NULL); |
|
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
1858 | |
| 15884 | 1859 | setting = g_new0(PurpleAccountSetting, 1); |
| 1860 | ||
| 1861 | setting->type = PURPLE_PREF_INT; | |
|
5777
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
1862 | setting->ui = g_strdup(ui); |
|
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
1863 | setting->value.integer = value; |
|
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
1864 | |
|
5794
ebdbb7dc6658
[gaim-migrate @ 6219]
Christian Hammond <chipx86@chipx86.com>
parents:
5792
diff
changeset
|
1865 | table = get_ui_settings_table(account, ui); |
|
5779
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
1866 | |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
1867 | g_hash_table_insert(table, g_strdup(name), setting); |
|
5777
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
1868 | |
|
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
1869 | schedule_accounts_save(); |
|
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
1870 | } |
|
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
1871 | |
|
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
1872 | void |
| 15884 | 1873 | purple_account_set_ui_string(PurpleAccount *account, const char *ui, |
|
5777
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
1874 | const char *name, const char *value) |
|
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
1875 | { |
| 15884 | 1876 | PurpleAccountSetting *setting; |
|
5779
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
1877 | GHashTable *table; |
|
5777
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
1878 | |
|
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
1879 | g_return_if_fail(account != NULL); |
|
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
1880 | g_return_if_fail(ui != NULL); |
|
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
1881 | g_return_if_fail(name != NULL); |
|
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
1882 | |
| 15884 | 1883 | setting = g_new0(PurpleAccountSetting, 1); |
| 1884 | ||
| 1885 | setting->type = PURPLE_PREF_STRING; | |
|
5777
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
1886 | setting->ui = g_strdup(ui); |
|
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
1887 | setting->value.string = g_strdup(value); |
|
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
1888 | |
|
5794
ebdbb7dc6658
[gaim-migrate @ 6219]
Christian Hammond <chipx86@chipx86.com>
parents:
5792
diff
changeset
|
1889 | table = get_ui_settings_table(account, ui); |
|
5779
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
1890 | |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
1891 | g_hash_table_insert(table, g_strdup(name), setting); |
|
5777
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
1892 | |
|
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
1893 | schedule_accounts_save(); |
|
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
1894 | } |
|
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
1895 | |
|
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
1896 | void |
| 15884 | 1897 | purple_account_set_ui_bool(PurpleAccount *account, const char *ui, |
|
5777
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
1898 | const char *name, gboolean value) |
|
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
1899 | { |
| 15884 | 1900 | PurpleAccountSetting *setting; |
|
5779
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
1901 | GHashTable *table; |
|
5777
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
1902 | |
|
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
1903 | g_return_if_fail(account != NULL); |
|
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
1904 | g_return_if_fail(ui != NULL); |
|
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
1905 | g_return_if_fail(name != NULL); |
|
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
1906 | |
| 15884 | 1907 | setting = g_new0(PurpleAccountSetting, 1); |
| 1908 | ||
| 1909 | setting->type = PURPLE_PREF_BOOLEAN; | |
|
5777
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
1910 | setting->ui = g_strdup(ui); |
|
20246
161dd7a7f73a
applied changes from 7a436ba53de6adebccf4e920ca62d544e13b1094
Luke Schierer <lschiere@pidgin.im>
parents:
20147
diff
changeset
|
1911 | setting->value.boolean = value; |
|
5777
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
1912 | |
|
5794
ebdbb7dc6658
[gaim-migrate @ 6219]
Christian Hammond <chipx86@chipx86.com>
parents:
5792
diff
changeset
|
1913 | table = get_ui_settings_table(account, ui); |
|
5779
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
1914 | |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
1915 | g_hash_table_insert(table, g_strdup(name), setting); |
|
5777
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
1916 | |
|
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
1917 | schedule_accounts_save(); |
|
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
1918 | } |
|
2b4e8214a7cd
[gaim-migrate @ 6202]
Christian Hammond <chipx86@chipx86.com>
parents:
5742
diff
changeset
|
1919 | |
| 15884 | 1920 | static PurpleConnectionState |
| 1921 | purple_account_get_state(const PurpleAccount *account) | |
| 5563 | 1922 | { |
| 15884 | 1923 | PurpleConnection *gc; |
| 1924 | ||
| 1925 | g_return_val_if_fail(account != NULL, PURPLE_DISCONNECTED); | |
| 1926 | ||
| 1927 | gc = purple_account_get_connection(account); | |
|
11251
e38d86958a63
[gaim-migrate @ 13420]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11249
diff
changeset
|
1928 | if (!gc) |
| 15884 | 1929 | return PURPLE_DISCONNECTED; |
| 1930 | ||
| 1931 | return purple_connection_get_state(gc); | |
|
11251
e38d86958a63
[gaim-migrate @ 13420]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11249
diff
changeset
|
1932 | } |
|
e38d86958a63
[gaim-migrate @ 13420]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11249
diff
changeset
|
1933 | |
|
e38d86958a63
[gaim-migrate @ 13420]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11249
diff
changeset
|
1934 | gboolean |
| 15884 | 1935 | purple_account_is_connected(const PurpleAccount *account) |
|
11251
e38d86958a63
[gaim-migrate @ 13420]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11249
diff
changeset
|
1936 | { |
| 15884 | 1937 | return (purple_account_get_state(account) == PURPLE_CONNECTED); |
|
11251
e38d86958a63
[gaim-migrate @ 13420]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11249
diff
changeset
|
1938 | } |
|
e38d86958a63
[gaim-migrate @ 13420]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11249
diff
changeset
|
1939 | |
|
e38d86958a63
[gaim-migrate @ 13420]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11249
diff
changeset
|
1940 | gboolean |
| 15884 | 1941 | purple_account_is_connecting(const PurpleAccount *account) |
|
11251
e38d86958a63
[gaim-migrate @ 13420]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11249
diff
changeset
|
1942 | { |
| 15884 | 1943 | return (purple_account_get_state(account) == PURPLE_CONNECTING); |
|
11251
e38d86958a63
[gaim-migrate @ 13420]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11249
diff
changeset
|
1944 | } |
|
e38d86958a63
[gaim-migrate @ 13420]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11249
diff
changeset
|
1945 | |
|
e38d86958a63
[gaim-migrate @ 13420]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11249
diff
changeset
|
1946 | gboolean |
| 15884 | 1947 | purple_account_is_disconnected(const PurpleAccount *account) |
|
11251
e38d86958a63
[gaim-migrate @ 13420]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11249
diff
changeset
|
1948 | { |
| 15884 | 1949 | return (purple_account_get_state(account) == PURPLE_DISCONNECTED); |
| 5563 | 1950 | } |
| 1951 | ||
| 1952 | const char * | |
| 15884 | 1953 | purple_account_get_username(const PurpleAccount *account) |
| 5563 | 1954 | { |
| 1955 | g_return_val_if_fail(account != NULL, NULL); | |
| 1956 | ||
| 1957 | return account->username; | |
| 1958 | } | |
| 1959 | ||
| 1960 | const char * | |
| 15884 | 1961 | purple_account_get_password(const PurpleAccount *account) |
| 5563 | 1962 | { |
| 1963 | g_return_val_if_fail(account != NULL, NULL); | |
| 1964 | ||
| 1965 | return account->password; | |
| 1966 | } | |
| 1967 | ||
| 1968 | const char * | |
| 15884 | 1969 | purple_account_get_alias(const PurpleAccount *account) |
| 5563 | 1970 | { |
| 1971 | g_return_val_if_fail(account != NULL, NULL); | |
| 1972 | ||
| 1973 | return account->alias; | |
| 1974 | } | |
| 1975 | ||
| 1976 | const char * | |
| 15884 | 1977 | purple_account_get_user_info(const PurpleAccount *account) |
| 5563 | 1978 | { |
| 1979 | g_return_val_if_fail(account != NULL, NULL); | |
| 1980 | ||
| 1981 | return account->user_info; | |
| 1982 | } | |
| 1983 | ||
| 1984 | const char * | |
| 15884 | 1985 | purple_account_get_buddy_icon_path(const PurpleAccount *account) |
|
15132
672c39839af1
[gaim-migrate @ 17854]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15119
diff
changeset
|
1986 | { |
|
672c39839af1
[gaim-migrate @ 17854]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15119
diff
changeset
|
1987 | g_return_val_if_fail(account != NULL, NULL); |
|
672c39839af1
[gaim-migrate @ 17854]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15119
diff
changeset
|
1988 | |
|
672c39839af1
[gaim-migrate @ 17854]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15119
diff
changeset
|
1989 | return account->buddy_icon_path; |
|
672c39839af1
[gaim-migrate @ 17854]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15119
diff
changeset
|
1990 | } |
|
672c39839af1
[gaim-migrate @ 17854]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15119
diff
changeset
|
1991 | |
|
672c39839af1
[gaim-migrate @ 17854]
Mark Huetsch <markhuetsch@users.sourceforge.net>
parents:
15119
diff
changeset
|
1992 | const char * |
| 15884 | 1993 | purple_account_get_protocol_id(const PurpleAccount *account) |
|
5943
8a052155157a
[gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents:
5942
diff
changeset
|
1994 | { |
|
8a052155157a
[gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents:
5942
diff
changeset
|
1995 | g_return_val_if_fail(account != NULL, NULL); |
|
8a052155157a
[gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents:
5942
diff
changeset
|
1996 | return account->protocol_id; |
| 5563 | 1997 | } |
| 1998 | ||
|
9699
d1ca5dd91cc2
[gaim-migrate @ 10558]
Mark Doliner <markdoliner@pidgin.im>
parents:
9619
diff
changeset
|
1999 | const char * |
| 15884 | 2000 | purple_account_get_protocol_name(const PurpleAccount *account) |
|
9699
d1ca5dd91cc2
[gaim-migrate @ 10558]
Mark Doliner <markdoliner@pidgin.im>
parents:
9619
diff
changeset
|
2001 | { |
| 15884 | 2002 | PurplePlugin *p; |
|
9720
02c64e22341e
[gaim-migrate @ 10581]
Mark Doliner <markdoliner@pidgin.im>
parents:
9699
diff
changeset
|
2003 | |
|
9699
d1ca5dd91cc2
[gaim-migrate @ 10558]
Mark Doliner <markdoliner@pidgin.im>
parents:
9619
diff
changeset
|
2004 | g_return_val_if_fail(account != NULL, NULL); |
|
d1ca5dd91cc2
[gaim-migrate @ 10558]
Mark Doliner <markdoliner@pidgin.im>
parents:
9619
diff
changeset
|
2005 | |
| 15884 | 2006 | p = purple_find_prpl(purple_account_get_protocol_id(account)); |
| 9988 | 2007 | |
| 2008 | return ((p && p->info->name) ? _(p->info->name) : _("Unknown")); | |
| 2009 | } | |
| 2010 | ||
| 15884 | 2011 | PurpleConnection * |
| 2012 | purple_account_get_connection(const PurpleAccount *account) | |
| 5563 | 2013 | { |
| 2014 | g_return_val_if_fail(account != NULL, NULL); | |
| 2015 | ||
| 2016 | return account->gc; | |
| 2017 | } | |
| 2018 | ||
|
28254
309f7698d6b7
Add a purple_account_get_name_for_display function (I'm not a huge fan of that
Etan Reisner <deryni@pidgin.im>
parents:
27969
diff
changeset
|
2019 | const gchar * |
|
309f7698d6b7
Add a purple_account_get_name_for_display function (I'm not a huge fan of that
Etan Reisner <deryni@pidgin.im>
parents:
27969
diff
changeset
|
2020 | purple_account_get_name_for_display(const PurpleAccount *account) |
|
309f7698d6b7
Add a purple_account_get_name_for_display function (I'm not a huge fan of that
Etan Reisner <deryni@pidgin.im>
parents:
27969
diff
changeset
|
2021 | { |
|
309f7698d6b7
Add a purple_account_get_name_for_display function (I'm not a huge fan of that
Etan Reisner <deryni@pidgin.im>
parents:
27969
diff
changeset
|
2022 | PurpleBuddy *self = NULL; |
|
309f7698d6b7
Add a purple_account_get_name_for_display function (I'm not a huge fan of that
Etan Reisner <deryni@pidgin.im>
parents:
27969
diff
changeset
|
2023 | PurpleConnection *gc = NULL; |
|
309f7698d6b7
Add a purple_account_get_name_for_display function (I'm not a huge fan of that
Etan Reisner <deryni@pidgin.im>
parents:
27969
diff
changeset
|
2024 | const gchar *name = NULL, *username = NULL, *displayname = NULL; |
|
309f7698d6b7
Add a purple_account_get_name_for_display function (I'm not a huge fan of that
Etan Reisner <deryni@pidgin.im>
parents:
27969
diff
changeset
|
2025 | |
|
309f7698d6b7
Add a purple_account_get_name_for_display function (I'm not a huge fan of that
Etan Reisner <deryni@pidgin.im>
parents:
27969
diff
changeset
|
2026 | name = purple_account_get_alias(account); |
|
309f7698d6b7
Add a purple_account_get_name_for_display function (I'm not a huge fan of that
Etan Reisner <deryni@pidgin.im>
parents:
27969
diff
changeset
|
2027 | |
|
309f7698d6b7
Add a purple_account_get_name_for_display function (I'm not a huge fan of that
Etan Reisner <deryni@pidgin.im>
parents:
27969
diff
changeset
|
2028 | if (name) { |
|
309f7698d6b7
Add a purple_account_get_name_for_display function (I'm not a huge fan of that
Etan Reisner <deryni@pidgin.im>
parents:
27969
diff
changeset
|
2029 | return name; |
|
309f7698d6b7
Add a purple_account_get_name_for_display function (I'm not a huge fan of that
Etan Reisner <deryni@pidgin.im>
parents:
27969
diff
changeset
|
2030 | } |
|
309f7698d6b7
Add a purple_account_get_name_for_display function (I'm not a huge fan of that
Etan Reisner <deryni@pidgin.im>
parents:
27969
diff
changeset
|
2031 | |
|
309f7698d6b7
Add a purple_account_get_name_for_display function (I'm not a huge fan of that
Etan Reisner <deryni@pidgin.im>
parents:
27969
diff
changeset
|
2032 | username = purple_account_get_username(account); |
|
309f7698d6b7
Add a purple_account_get_name_for_display function (I'm not a huge fan of that
Etan Reisner <deryni@pidgin.im>
parents:
27969
diff
changeset
|
2033 | self = purple_find_buddy((PurpleAccount *)account, username); |
|
309f7698d6b7
Add a purple_account_get_name_for_display function (I'm not a huge fan of that
Etan Reisner <deryni@pidgin.im>
parents:
27969
diff
changeset
|
2034 | |
|
309f7698d6b7
Add a purple_account_get_name_for_display function (I'm not a huge fan of that
Etan Reisner <deryni@pidgin.im>
parents:
27969
diff
changeset
|
2035 | if (self) { |
|
309f7698d6b7
Add a purple_account_get_name_for_display function (I'm not a huge fan of that
Etan Reisner <deryni@pidgin.im>
parents:
27969
diff
changeset
|
2036 | const gchar *calias= purple_buddy_get_contact_alias(self); |
|
309f7698d6b7
Add a purple_account_get_name_for_display function (I'm not a huge fan of that
Etan Reisner <deryni@pidgin.im>
parents:
27969
diff
changeset
|
2037 | |
|
309f7698d6b7
Add a purple_account_get_name_for_display function (I'm not a huge fan of that
Etan Reisner <deryni@pidgin.im>
parents:
27969
diff
changeset
|
2038 | /* We don't want to return the buddy name if the buddy/contact |
|
309f7698d6b7
Add a purple_account_get_name_for_display function (I'm not a huge fan of that
Etan Reisner <deryni@pidgin.im>
parents:
27969
diff
changeset
|
2039 | * doesn't have an alias set. */ |
|
309f7698d6b7
Add a purple_account_get_name_for_display function (I'm not a huge fan of that
Etan Reisner <deryni@pidgin.im>
parents:
27969
diff
changeset
|
2040 | if (!purple_strequal(username, calias)) { |
|
309f7698d6b7
Add a purple_account_get_name_for_display function (I'm not a huge fan of that
Etan Reisner <deryni@pidgin.im>
parents:
27969
diff
changeset
|
2041 | return calias; |
|
309f7698d6b7
Add a purple_account_get_name_for_display function (I'm not a huge fan of that
Etan Reisner <deryni@pidgin.im>
parents:
27969
diff
changeset
|
2042 | } |
|
309f7698d6b7
Add a purple_account_get_name_for_display function (I'm not a huge fan of that
Etan Reisner <deryni@pidgin.im>
parents:
27969
diff
changeset
|
2043 | } |
|
309f7698d6b7
Add a purple_account_get_name_for_display function (I'm not a huge fan of that
Etan Reisner <deryni@pidgin.im>
parents:
27969
diff
changeset
|
2044 | |
|
309f7698d6b7
Add a purple_account_get_name_for_display function (I'm not a huge fan of that
Etan Reisner <deryni@pidgin.im>
parents:
27969
diff
changeset
|
2045 | gc = purple_account_get_connection(account); |
|
309f7698d6b7
Add a purple_account_get_name_for_display function (I'm not a huge fan of that
Etan Reisner <deryni@pidgin.im>
parents:
27969
diff
changeset
|
2046 | displayname = purple_connection_get_display_name(gc); |
|
309f7698d6b7
Add a purple_account_get_name_for_display function (I'm not a huge fan of that
Etan Reisner <deryni@pidgin.im>
parents:
27969
diff
changeset
|
2047 | |
|
309f7698d6b7
Add a purple_account_get_name_for_display function (I'm not a huge fan of that
Etan Reisner <deryni@pidgin.im>
parents:
27969
diff
changeset
|
2048 | if (displayname) { |
|
309f7698d6b7
Add a purple_account_get_name_for_display function (I'm not a huge fan of that
Etan Reisner <deryni@pidgin.im>
parents:
27969
diff
changeset
|
2049 | return displayname; |
|
309f7698d6b7
Add a purple_account_get_name_for_display function (I'm not a huge fan of that
Etan Reisner <deryni@pidgin.im>
parents:
27969
diff
changeset
|
2050 | } |
|
309f7698d6b7
Add a purple_account_get_name_for_display function (I'm not a huge fan of that
Etan Reisner <deryni@pidgin.im>
parents:
27969
diff
changeset
|
2051 | |
|
309f7698d6b7
Add a purple_account_get_name_for_display function (I'm not a huge fan of that
Etan Reisner <deryni@pidgin.im>
parents:
27969
diff
changeset
|
2052 | return username; |
|
309f7698d6b7
Add a purple_account_get_name_for_display function (I'm not a huge fan of that
Etan Reisner <deryni@pidgin.im>
parents:
27969
diff
changeset
|
2053 | } |
|
309f7698d6b7
Add a purple_account_get_name_for_display function (I'm not a huge fan of that
Etan Reisner <deryni@pidgin.im>
parents:
27969
diff
changeset
|
2054 | |
| 5563 | 2055 | gboolean |
| 15884 | 2056 | purple_account_get_remember_password(const PurpleAccount *account) |
| 5563 | 2057 | { |
| 2058 | g_return_val_if_fail(account != NULL, FALSE); | |
| 2059 | ||
| 2060 | return account->remember_pass; | |
| 2061 | } | |
| 2062 | ||
|
5565
687cc390b7dc
[gaim-migrate @ 5967]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
2063 | gboolean |
| 15884 | 2064 | purple_account_get_check_mail(const PurpleAccount *account) |
|
5565
687cc390b7dc
[gaim-migrate @ 5967]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
2065 | { |
|
687cc390b7dc
[gaim-migrate @ 5967]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
2066 | g_return_val_if_fail(account != NULL, FALSE); |
|
687cc390b7dc
[gaim-migrate @ 5967]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
2067 | |
| 15884 | 2068 | return purple_account_get_bool(account, "check-mail", FALSE); |
|
5565
687cc390b7dc
[gaim-migrate @ 5967]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
2069 | } |
|
687cc390b7dc
[gaim-migrate @ 5967]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
2070 | |
|
5779
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2071 | gboolean |
| 15884 | 2072 | purple_account_get_enabled(const PurpleAccount *account, const char *ui) |
|
5779
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2073 | { |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2074 | g_return_val_if_fail(account != NULL, FALSE); |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2075 | g_return_val_if_fail(ui != NULL, FALSE); |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2076 | |
| 15884 | 2077 | return purple_account_get_ui_bool(account, ui, "auto-login", FALSE); |
|
5779
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2078 | } |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2079 | |
| 15884 | 2080 | PurpleProxyInfo * |
| 2081 | purple_account_get_proxy_info(const PurpleAccount *account) | |
|
5681
514fbc5374dc
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5666
diff
changeset
|
2082 | { |
|
514fbc5374dc
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5666
diff
changeset
|
2083 | g_return_val_if_fail(account != NULL, NULL); |
|
514fbc5374dc
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5666
diff
changeset
|
2084 | |
|
514fbc5374dc
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5666
diff
changeset
|
2085 | return account->proxy_info; |
|
514fbc5374dc
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5666
diff
changeset
|
2086 | } |
|
514fbc5374dc
[gaim-migrate @ 6100]
Christian Hammond <chipx86@chipx86.com>
parents:
5666
diff
changeset
|
2087 | |
| 15884 | 2088 | PurpleStatus * |
| 2089 | purple_account_get_active_status(const PurpleAccount *account) | |
|
10738
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
2090 | { |
|
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
2091 | g_return_val_if_fail(account != NULL, NULL); |
|
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
2092 | |
| 15884 | 2093 | return purple_presence_get_active_status(account->presence); |
|
10738
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
2094 | } |
|
63ca8277c234
[gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents:
10720
diff
changeset
|
2095 | |
| 15884 | 2096 | PurpleStatus * |
| 2097 | purple_account_get_status(const PurpleAccount *account, const char *status_id) | |
|
9944
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
2098 | { |
|
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
2099 | g_return_val_if_fail(account != NULL, NULL); |
|
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
2100 | g_return_val_if_fail(status_id != NULL, NULL); |
|
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
2101 | |
| 15884 | 2102 | return purple_presence_get_status(account->presence, status_id); |
|
9944
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
2103 | } |
|
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
2104 | |
| 15884 | 2105 | PurpleStatusType * |
| 2106 | purple_account_get_status_type(const PurpleAccount *account, const char *id) | |
|
9944
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
2107 | { |
|
18190
bcf28ef7e8ff
Re-fix the DBus list handling code by killing const GList* / const GSList*
Richard Laager <rlaager@pidgin.im>
parents:
18122
diff
changeset
|
2108 | GList *l; |
|
9944
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
2109 | |
|
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
2110 | g_return_val_if_fail(account != NULL, NULL); |
|
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
2111 | g_return_val_if_fail(id != NULL, NULL); |
|
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
2112 | |
| 15884 | 2113 | for (l = purple_account_get_status_types(account); l != NULL; l = l->next) |
|
9944
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
2114 | { |
| 15884 | 2115 | PurpleStatusType *status_type = (PurpleStatusType *)l->data; |
| 2116 | ||
|
25859
b42be7bb9dac
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents:
25140
diff
changeset
|
2117 | if (purple_strequal(purple_status_type_get_id(status_type), id)) |
|
9944
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
2118 | return status_type; |
|
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
2119 | } |
|
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
2120 | |
|
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
2121 | return NULL; |
|
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
2122 | } |
|
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
2123 | |
| 15884 | 2124 | PurpleStatusType * |
| 2125 | purple_account_get_status_type_with_primitive(const PurpleAccount *account, PurpleStatusPrimitive primitive) | |
|
11739
cc15987b3937
[gaim-migrate @ 14030]
Mark Doliner <markdoliner@pidgin.im>
parents:
11736
diff
changeset
|
2126 | { |
|
18190
bcf28ef7e8ff
Re-fix the DBus list handling code by killing const GList* / const GSList*
Richard Laager <rlaager@pidgin.im>
parents:
18122
diff
changeset
|
2127 | GList *l; |
|
11739
cc15987b3937
[gaim-migrate @ 14030]
Mark Doliner <markdoliner@pidgin.im>
parents:
11736
diff
changeset
|
2128 | |
|
cc15987b3937
[gaim-migrate @ 14030]
Mark Doliner <markdoliner@pidgin.im>
parents:
11736
diff
changeset
|
2129 | g_return_val_if_fail(account != NULL, NULL); |
|
cc15987b3937
[gaim-migrate @ 14030]
Mark Doliner <markdoliner@pidgin.im>
parents:
11736
diff
changeset
|
2130 | |
| 15884 | 2131 | for (l = purple_account_get_status_types(account); l != NULL; l = l->next) |
|
11739
cc15987b3937
[gaim-migrate @ 14030]
Mark Doliner <markdoliner@pidgin.im>
parents:
11736
diff
changeset
|
2132 | { |
| 15884 | 2133 | PurpleStatusType *status_type = (PurpleStatusType *)l->data; |
| 2134 | ||
| 2135 | if (purple_status_type_get_primitive(status_type) == primitive) | |
|
11739
cc15987b3937
[gaim-migrate @ 14030]
Mark Doliner <markdoliner@pidgin.im>
parents:
11736
diff
changeset
|
2136 | return status_type; |
|
cc15987b3937
[gaim-migrate @ 14030]
Mark Doliner <markdoliner@pidgin.im>
parents:
11736
diff
changeset
|
2137 | } |
|
cc15987b3937
[gaim-migrate @ 14030]
Mark Doliner <markdoliner@pidgin.im>
parents:
11736
diff
changeset
|
2138 | |
|
cc15987b3937
[gaim-migrate @ 14030]
Mark Doliner <markdoliner@pidgin.im>
parents:
11736
diff
changeset
|
2139 | return NULL; |
|
cc15987b3937
[gaim-migrate @ 14030]
Mark Doliner <markdoliner@pidgin.im>
parents:
11736
diff
changeset
|
2140 | } |
|
cc15987b3937
[gaim-migrate @ 14030]
Mark Doliner <markdoliner@pidgin.im>
parents:
11736
diff
changeset
|
2141 | |
| 15884 | 2142 | PurplePresence * |
| 2143 | purple_account_get_presence(const PurpleAccount *account) | |
|
9944
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
2144 | { |
|
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
2145 | g_return_val_if_fail(account != NULL, NULL); |
|
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
2146 | |
|
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
2147 | return account->presence; |
|
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
2148 | } |
|
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
2149 | |
|
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
2150 | gboolean |
| 15884 | 2151 | purple_account_is_status_active(const PurpleAccount *account, |
|
9944
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
2152 | const char *status_id) |
|
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
2153 | { |
|
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
2154 | g_return_val_if_fail(account != NULL, FALSE); |
|
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
2155 | g_return_val_if_fail(status_id != NULL, FALSE); |
|
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
2156 | |
| 15884 | 2157 | return purple_presence_is_status_active(account->presence, status_id); |
|
9944
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
2158 | } |
|
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
2159 | |
|
18190
bcf28ef7e8ff
Re-fix the DBus list handling code by killing const GList* / const GSList*
Richard Laager <rlaager@pidgin.im>
parents:
18122
diff
changeset
|
2160 | GList * |
| 15884 | 2161 | purple_account_get_status_types(const PurpleAccount *account) |
|
9944
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
2162 | { |
|
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
2163 | g_return_val_if_fail(account != NULL, NULL); |
|
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
2164 | |
|
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
2165 | return account->status_types; |
|
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
2166 | } |
|
71ef020ec4b0
[gaim-migrate @ 10838]
Christian Hammond <chipx86@chipx86.com>
parents:
9720
diff
changeset
|
2167 | |
| 5563 | 2168 | int |
| 15884 | 2169 | purple_account_get_int(const PurpleAccount *account, const char *name, |
|
5564
1779a1bfbdb8
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
2170 | int default_value) |
| 5563 | 2171 | { |
| 15884 | 2172 | PurpleAccountSetting *setting; |
| 5563 | 2173 | |
|
5565
687cc390b7dc
[gaim-migrate @ 5967]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
2174 | g_return_val_if_fail(account != NULL, default_value); |
|
687cc390b7dc
[gaim-migrate @ 5967]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
2175 | g_return_val_if_fail(name != NULL, default_value); |
| 5563 | 2176 | |
| 2177 | setting = g_hash_table_lookup(account->settings, name); | |
| 2178 | ||
|
5564
1779a1bfbdb8
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
2179 | if (setting == NULL) |
|
1779a1bfbdb8
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
2180 | return default_value; |
|
1779a1bfbdb8
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
2181 | |
| 15884 | 2182 | g_return_val_if_fail(setting->type == PURPLE_PREF_INT, default_value); |
| 5563 | 2183 | |
| 2184 | return setting->value.integer; | |
| 2185 | } | |
| 2186 | ||
| 2187 | const char * | |
| 15884 | 2188 | purple_account_get_string(const PurpleAccount *account, const char *name, |
|
5564
1779a1bfbdb8
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
2189 | const char *default_value) |
| 5563 | 2190 | { |
| 15884 | 2191 | PurpleAccountSetting *setting; |
| 5563 | 2192 | |
|
5565
687cc390b7dc
[gaim-migrate @ 5967]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
2193 | g_return_val_if_fail(account != NULL, default_value); |
|
687cc390b7dc
[gaim-migrate @ 5967]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
2194 | g_return_val_if_fail(name != NULL, default_value); |
| 5563 | 2195 | |
| 2196 | setting = g_hash_table_lookup(account->settings, name); | |
| 2197 | ||
|
5564
1779a1bfbdb8
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
2198 | if (setting == NULL) |
|
1779a1bfbdb8
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
2199 | return default_value; |
|
1779a1bfbdb8
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
2200 | |
| 15884 | 2201 | g_return_val_if_fail(setting->type == PURPLE_PREF_STRING, default_value); |
| 5563 | 2202 | |
| 2203 | return setting->value.string; | |
| 2204 | } | |
| 2205 | ||
| 2206 | gboolean | |
| 15884 | 2207 | purple_account_get_bool(const PurpleAccount *account, const char *name, |
|
5564
1779a1bfbdb8
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
2208 | gboolean default_value) |
| 5563 | 2209 | { |
| 15884 | 2210 | PurpleAccountSetting *setting; |
| 5563 | 2211 | |
|
5565
687cc390b7dc
[gaim-migrate @ 5967]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
2212 | g_return_val_if_fail(account != NULL, default_value); |
|
687cc390b7dc
[gaim-migrate @ 5967]
Christian Hammond <chipx86@chipx86.com>
parents:
5564
diff
changeset
|
2213 | g_return_val_if_fail(name != NULL, default_value); |
| 5563 | 2214 | |
| 2215 | setting = g_hash_table_lookup(account->settings, name); | |
| 2216 | ||
|
5564
1779a1bfbdb8
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
2217 | if (setting == NULL) |
|
1779a1bfbdb8
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
2218 | return default_value; |
|
1779a1bfbdb8
[gaim-migrate @ 5966]
Christian Hammond <chipx86@chipx86.com>
parents:
5563
diff
changeset
|
2219 | |
| 15884 | 2220 | g_return_val_if_fail(setting->type == PURPLE_PREF_BOOLEAN, default_value); |
| 5563 | 2221 | |
|
20246
161dd7a7f73a
applied changes from 7a436ba53de6adebccf4e920ca62d544e13b1094
Luke Schierer <lschiere@pidgin.im>
parents:
20147
diff
changeset
|
2222 | return setting->value.boolean; |
| 5563 | 2223 | } |
| 2224 | ||
|
5779
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2225 | int |
| 15884 | 2226 | purple_account_get_ui_int(const PurpleAccount *account, const char *ui, |
|
5779
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2227 | const char *name, int default_value) |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2228 | { |
| 15884 | 2229 | PurpleAccountSetting *setting; |
|
5779
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2230 | GHashTable *table; |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2231 | |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2232 | g_return_val_if_fail(account != NULL, default_value); |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2233 | g_return_val_if_fail(ui != NULL, default_value); |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2234 | g_return_val_if_fail(name != NULL, default_value); |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2235 | |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2236 | if ((table = g_hash_table_lookup(account->ui_settings, ui)) == NULL) |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2237 | return default_value; |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2238 | |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2239 | if ((setting = g_hash_table_lookup(table, name)) == NULL) |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2240 | return default_value; |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2241 | |
| 15884 | 2242 | g_return_val_if_fail(setting->type == PURPLE_PREF_INT, default_value); |
|
5779
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2243 | |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2244 | return setting->value.integer; |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2245 | } |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2246 | |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2247 | const char * |
| 15884 | 2248 | purple_account_get_ui_string(const PurpleAccount *account, const char *ui, |
|
5779
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2249 | const char *name, const char *default_value) |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2250 | { |
| 15884 | 2251 | PurpleAccountSetting *setting; |
|
5779
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2252 | GHashTable *table; |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2253 | |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2254 | g_return_val_if_fail(account != NULL, default_value); |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2255 | g_return_val_if_fail(ui != NULL, default_value); |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2256 | g_return_val_if_fail(name != NULL, default_value); |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2257 | |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2258 | if ((table = g_hash_table_lookup(account->ui_settings, ui)) == NULL) |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2259 | return default_value; |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2260 | |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2261 | if ((setting = g_hash_table_lookup(table, name)) == NULL) |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2262 | return default_value; |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2263 | |
| 15884 | 2264 | g_return_val_if_fail(setting->type == PURPLE_PREF_STRING, default_value); |
|
5779
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2265 | |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2266 | return setting->value.string; |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2267 | } |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2268 | |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2269 | gboolean |
| 15884 | 2270 | purple_account_get_ui_bool(const PurpleAccount *account, const char *ui, |
|
5779
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2271 | const char *name, gboolean default_value) |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2272 | { |
| 15884 | 2273 | PurpleAccountSetting *setting; |
|
5779
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2274 | GHashTable *table; |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2275 | |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2276 | g_return_val_if_fail(account != NULL, default_value); |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2277 | g_return_val_if_fail(ui != NULL, default_value); |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2278 | g_return_val_if_fail(name != NULL, default_value); |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2279 | |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2280 | if ((table = g_hash_table_lookup(account->ui_settings, ui)) == NULL) |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2281 | return default_value; |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2282 | |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2283 | if ((setting = g_hash_table_lookup(table, name)) == NULL) |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2284 | return default_value; |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2285 | |
| 15884 | 2286 | g_return_val_if_fail(setting->type == PURPLE_PREF_BOOLEAN, default_value); |
|
5779
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2287 | |
|
20246
161dd7a7f73a
applied changes from 7a436ba53de6adebccf4e920ca62d544e13b1094
Luke Schierer <lschiere@pidgin.im>
parents:
20147
diff
changeset
|
2288 | return setting->value.boolean; |
|
5779
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2289 | } |
|
8c8b8c8139c2
[gaim-migrate @ 6204]
Christian Hammond <chipx86@chipx86.com>
parents:
5777
diff
changeset
|
2290 | |
| 15884 | 2291 | PurpleLog * |
| 2292 | purple_account_get_log(PurpleAccount *account, gboolean create) | |
| 8573 | 2293 | { |
| 2294 | g_return_val_if_fail(account != NULL, NULL); | |
| 2295 | ||
|
13508
3c66c5a0ca7c
[gaim-migrate @ 15883]
Richard Laager <rlaager@pidgin.im>
parents:
13282
diff
changeset
|
2296 | if(!account->system_log && create){ |
| 15884 | 2297 | PurplePresence *presence; |
|
11973
42a29ebcf30b
[gaim-migrate @ 14266]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
2298 | int login_time; |
|
42a29ebcf30b
[gaim-migrate @ 14266]
Mark Doliner <markdoliner@pidgin.im>
parents:
11920
diff
changeset
|
2299 | |
| 15884 | 2300 | presence = purple_account_get_presence(account); |
| 2301 | login_time = purple_presence_get_login_time(presence); | |
| 2302 | ||
| 2303 | account->system_log = purple_log_new(PURPLE_LOG_SYSTEM, | |
| 2304 | purple_account_get_username(account), account, NULL, | |
|
13120
c25222322810
[gaim-migrate @ 15481]
Richard Laager <rlaager@pidgin.im>
parents:
12975
diff
changeset
|
2305 | (login_time != 0) ? login_time : time(NULL), NULL); |
| 8573 | 2306 | } |
| 2307 | ||
| 2308 | return account->system_log; | |
| 2309 | } | |
| 2310 | ||
| 2311 | void | |
| 15884 | 2312 | purple_account_destroy_log(PurpleAccount *account) |
| 8573 | 2313 | { |
| 2314 | g_return_if_fail(account != NULL); | |
| 2315 | ||
| 2316 | if(account->system_log){ | |
| 15884 | 2317 | purple_log_free(account->system_log); |
| 8573 | 2318 | account->system_log = NULL; |
| 2319 | } | |
| 2320 | } | |
| 2321 | ||
|
5580
a5a3e6dfb409
[gaim-migrate @ 5984]
Christian Hammond <chipx86@chipx86.com>
parents:
5574
diff
changeset
|
2322 | void |
| 15884 | 2323 | purple_account_add_buddy(PurpleAccount *account, PurpleBuddy *buddy) |
|
11643
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2324 | { |
| 15884 | 2325 | PurplePluginProtocolInfo *prpl_info = NULL; |
| 2326 | PurpleConnection *gc = purple_account_get_connection(account); | |
|
22357
6f3b94a801a5
Made account.c use purple_connection_get_prpl instead of gc->prpl.
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
22235
diff
changeset
|
2327 | PurplePlugin *prpl = NULL; |
|
25888
d0fdd378a635
Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
25871
diff
changeset
|
2328 | |
|
22357
6f3b94a801a5
Made account.c use purple_connection_get_prpl instead of gc->prpl.
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
22235
diff
changeset
|
2329 | if (gc != NULL) |
|
25888
d0fdd378a635
Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
25871
diff
changeset
|
2330 | prpl = purple_connection_get_prpl(gc); |
|
22357
6f3b94a801a5
Made account.c use purple_connection_get_prpl instead of gc->prpl.
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
22235
diff
changeset
|
2331 | |
|
6f3b94a801a5
Made account.c use purple_connection_get_prpl instead of gc->prpl.
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
22235
diff
changeset
|
2332 | if (prpl != NULL) |
|
6f3b94a801a5
Made account.c use purple_connection_get_prpl instead of gc->prpl.
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
22235
diff
changeset
|
2333 | prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); |
|
11643
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2334 | |
|
14669
df3f48ab4aff
[gaim-migrate @ 17335]
Mark Doliner <markdoliner@pidgin.im>
parents:
14254
diff
changeset
|
2335 | if (prpl_info != NULL && prpl_info->add_buddy != NULL) |
| 15884 | 2336 | prpl_info->add_buddy(gc, buddy, purple_buddy_get_group(buddy)); |
|
11643
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2337 | } |
|
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2338 | |
|
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2339 | void |
| 15884 | 2340 | purple_account_add_buddies(PurpleAccount *account, GList *buddies) |
|
11643
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2341 | { |
| 15884 | 2342 | PurplePluginProtocolInfo *prpl_info = NULL; |
| 2343 | PurpleConnection *gc = purple_account_get_connection(account); | |
|
22357
6f3b94a801a5
Made account.c use purple_connection_get_prpl instead of gc->prpl.
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
22235
diff
changeset
|
2344 | PurplePlugin *prpl = NULL; |
|
25888
d0fdd378a635
Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
25871
diff
changeset
|
2345 | |
|
22357
6f3b94a801a5
Made account.c use purple_connection_get_prpl instead of gc->prpl.
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
22235
diff
changeset
|
2346 | if (gc != NULL) |
|
25888
d0fdd378a635
Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
25871
diff
changeset
|
2347 | prpl = purple_connection_get_prpl(gc); |
|
22357
6f3b94a801a5
Made account.c use purple_connection_get_prpl instead of gc->prpl.
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
22235
diff
changeset
|
2348 | |
|
6f3b94a801a5
Made account.c use purple_connection_get_prpl instead of gc->prpl.
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
22235
diff
changeset
|
2349 | if (prpl != NULL) |
|
6f3b94a801a5
Made account.c use purple_connection_get_prpl instead of gc->prpl.
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
22235
diff
changeset
|
2350 | prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); |
|
25888
d0fdd378a635
Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
25871
diff
changeset
|
2351 | |
|
14669
df3f48ab4aff
[gaim-migrate @ 17335]
Mark Doliner <markdoliner@pidgin.im>
parents:
14254
diff
changeset
|
2352 | if (prpl_info) { |
|
11643
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2353 | GList *cur, *groups = NULL; |
|
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2354 | |
|
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2355 | /* Make a list of what group each buddy is in */ |
|
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2356 | for (cur = buddies; cur != NULL; cur = cur->next) { |
|
24957
647853a842da
A couple of minor fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
24955
diff
changeset
|
2357 | PurpleBuddy *buddy = cur->data; |
|
647853a842da
A couple of minor fixes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
24955
diff
changeset
|
2358 | groups = g_list_append(groups, purple_buddy_get_group(buddy)); |
|
11643
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2359 | } |
|
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2360 | |
|
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2361 | if (prpl_info->add_buddies != NULL) |
|
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2362 | prpl_info->add_buddies(gc, buddies, groups); |
|
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2363 | else if (prpl_info->add_buddy != NULL) { |
|
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2364 | GList *curb = buddies, *curg = groups; |
|
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2365 | |
|
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2366 | while ((curb != NULL) && (curg != NULL)) { |
|
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2367 | prpl_info->add_buddy(gc, curb->data, curg->data); |
|
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2368 | curb = curb->next; |
|
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2369 | curg = curg->next; |
|
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2370 | } |
|
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2371 | } |
|
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2372 | |
|
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2373 | g_list_free(groups); |
|
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2374 | } |
|
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2375 | } |
|
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2376 | |
|
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2377 | void |
| 15884 | 2378 | purple_account_remove_buddy(PurpleAccount *account, PurpleBuddy *buddy, |
| 2379 | PurpleGroup *group) | |
|
11643
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2380 | { |
| 15884 | 2381 | PurplePluginProtocolInfo *prpl_info = NULL; |
| 2382 | PurpleConnection *gc = purple_account_get_connection(account); | |
|
22357
6f3b94a801a5
Made account.c use purple_connection_get_prpl instead of gc->prpl.
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
22235
diff
changeset
|
2383 | PurplePlugin *prpl = NULL; |
|
25888
d0fdd378a635
Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
25871
diff
changeset
|
2384 | |
|
22357
6f3b94a801a5
Made account.c use purple_connection_get_prpl instead of gc->prpl.
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
22235
diff
changeset
|
2385 | if (gc != NULL) |
|
25888
d0fdd378a635
Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
25871
diff
changeset
|
2386 | prpl = purple_connection_get_prpl(gc); |
|
22357
6f3b94a801a5
Made account.c use purple_connection_get_prpl instead of gc->prpl.
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
22235
diff
changeset
|
2387 | |
|
6f3b94a801a5
Made account.c use purple_connection_get_prpl instead of gc->prpl.
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
22235
diff
changeset
|
2388 | if (prpl != NULL) |
|
6f3b94a801a5
Made account.c use purple_connection_get_prpl instead of gc->prpl.
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
22235
diff
changeset
|
2389 | prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); |
|
25888
d0fdd378a635
Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
25871
diff
changeset
|
2390 | |
|
14669
df3f48ab4aff
[gaim-migrate @ 17335]
Mark Doliner <markdoliner@pidgin.im>
parents:
14254
diff
changeset
|
2391 | if (prpl_info && prpl_info->remove_buddy) |
|
11643
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2392 | prpl_info->remove_buddy(gc, buddy, group); |
|
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2393 | } |
|
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2394 | |
|
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2395 | void |
| 15884 | 2396 | purple_account_remove_buddies(PurpleAccount *account, GList *buddies, GList *groups) |
|
11643
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2397 | { |
| 15884 | 2398 | PurplePluginProtocolInfo *prpl_info = NULL; |
| 2399 | PurpleConnection *gc = purple_account_get_connection(account); | |
|
22357
6f3b94a801a5
Made account.c use purple_connection_get_prpl instead of gc->prpl.
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
22235
diff
changeset
|
2400 | PurplePlugin *prpl = NULL; |
|
25888
d0fdd378a635
Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
25871
diff
changeset
|
2401 | |
|
22357
6f3b94a801a5
Made account.c use purple_connection_get_prpl instead of gc->prpl.
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
22235
diff
changeset
|
2402 | if (gc != NULL) |
|
25888
d0fdd378a635
Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
25871
diff
changeset
|
2403 | prpl = purple_connection_get_prpl(gc); |
|
22357
6f3b94a801a5
Made account.c use purple_connection_get_prpl instead of gc->prpl.
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
22235
diff
changeset
|
2404 | |
|
6f3b94a801a5
Made account.c use purple_connection_get_prpl instead of gc->prpl.
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
22235
diff
changeset
|
2405 | if (prpl != NULL) |
|
6f3b94a801a5
Made account.c use purple_connection_get_prpl instead of gc->prpl.
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
22235
diff
changeset
|
2406 | prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); |
|
25888
d0fdd378a635
Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
25871
diff
changeset
|
2407 | |
|
14669
df3f48ab4aff
[gaim-migrate @ 17335]
Mark Doliner <markdoliner@pidgin.im>
parents:
14254
diff
changeset
|
2408 | if (prpl_info) { |
|
11643
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2409 | if (prpl_info->remove_buddies) |
|
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2410 | prpl_info->remove_buddies(gc, buddies, groups); |
|
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2411 | else { |
|
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2412 | GList *curb = buddies; |
|
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2413 | GList *curg = groups; |
|
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2414 | while ((curb != NULL) && (curg != NULL)) { |
| 15884 | 2415 | purple_account_remove_buddy(account, curb->data, curg->data); |
|
11643
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2416 | curb = curb->next; |
|
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2417 | curg = curg->next; |
|
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2418 | } |
|
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2419 | } |
|
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2420 | } |
|
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2421 | } |
|
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2422 | |
|
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2423 | void |
| 15884 | 2424 | purple_account_remove_group(PurpleAccount *account, PurpleGroup *group) |
|
11643
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2425 | { |
| 15884 | 2426 | PurplePluginProtocolInfo *prpl_info = NULL; |
| 2427 | PurpleConnection *gc = purple_account_get_connection(account); | |
|
22357
6f3b94a801a5
Made account.c use purple_connection_get_prpl instead of gc->prpl.
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
22235
diff
changeset
|
2428 | PurplePlugin *prpl = NULL; |
|
25888
d0fdd378a635
Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
25871
diff
changeset
|
2429 | |
|
22357
6f3b94a801a5
Made account.c use purple_connection_get_prpl instead of gc->prpl.
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
22235
diff
changeset
|
2430 | if (gc != NULL) |
|
25888
d0fdd378a635
Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
25871
diff
changeset
|
2431 | prpl = purple_connection_get_prpl(gc); |
|
22357
6f3b94a801a5
Made account.c use purple_connection_get_prpl instead of gc->prpl.
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
22235
diff
changeset
|
2432 | |
|
6f3b94a801a5
Made account.c use purple_connection_get_prpl instead of gc->prpl.
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
22235
diff
changeset
|
2433 | if (prpl != NULL) |
|
6f3b94a801a5
Made account.c use purple_connection_get_prpl instead of gc->prpl.
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
22235
diff
changeset
|
2434 | prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); |
|
11643
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2435 | |
|
14669
df3f48ab4aff
[gaim-migrate @ 17335]
Mark Doliner <markdoliner@pidgin.im>
parents:
14254
diff
changeset
|
2436 | if (prpl_info && prpl_info->remove_group) |
|
11643
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2437 | prpl_info->remove_group(gc, group); |
|
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2438 | } |
|
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2439 | |
|
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2440 | void |
| 15884 | 2441 | purple_account_change_password(PurpleAccount *account, const char *orig_pw, |
|
11643
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2442 | const char *new_pw) |
|
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2443 | { |
| 15884 | 2444 | PurplePluginProtocolInfo *prpl_info = NULL; |
| 2445 | PurpleConnection *gc = purple_account_get_connection(account); | |
|
22357
6f3b94a801a5
Made account.c use purple_connection_get_prpl instead of gc->prpl.
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
22235
diff
changeset
|
2446 | PurplePlugin *prpl = NULL; |
|
25888
d0fdd378a635
Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
25871
diff
changeset
|
2447 | |
| 15884 | 2448 | purple_account_set_password(account, new_pw); |
|
25888
d0fdd378a635
Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
25871
diff
changeset
|
2449 | |
|
22357
6f3b94a801a5
Made account.c use purple_connection_get_prpl instead of gc->prpl.
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
22235
diff
changeset
|
2450 | if (gc != NULL) |
|
25888
d0fdd378a635
Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
25871
diff
changeset
|
2451 | prpl = purple_connection_get_prpl(gc); |
|
22357
6f3b94a801a5
Made account.c use purple_connection_get_prpl instead of gc->prpl.
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
22235
diff
changeset
|
2452 | |
|
6f3b94a801a5
Made account.c use purple_connection_get_prpl instead of gc->prpl.
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
22235
diff
changeset
|
2453 | if (prpl != NULL) |
|
6f3b94a801a5
Made account.c use purple_connection_get_prpl instead of gc->prpl.
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
22235
diff
changeset
|
2454 | prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); |
|
11643
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2455 | |
|
14669
df3f48ab4aff
[gaim-migrate @ 17335]
Mark Doliner <markdoliner@pidgin.im>
parents:
14254
diff
changeset
|
2456 | if (prpl_info && prpl_info->change_passwd) |
|
11643
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2457 | prpl_info->change_passwd(gc, orig_pw, new_pw); |
|
11985
d4a210fb43e9
[gaim-migrate @ 14278]
Mark Doliner <markdoliner@pidgin.im>
parents:
11982
diff
changeset
|
2458 | } |
|
11643
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2459 | |
| 15884 | 2460 | gboolean purple_account_supports_offline_message(PurpleAccount *account, PurpleBuddy *buddy) |
|
12645
a907ba243930
[gaim-migrate @ 14983]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12420
diff
changeset
|
2461 | { |
| 15884 | 2462 | PurpleConnection *gc; |
|
22357
6f3b94a801a5
Made account.c use purple_connection_get_prpl instead of gc->prpl.
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
22235
diff
changeset
|
2463 | PurplePluginProtocolInfo *prpl_info = NULL; |
|
6f3b94a801a5
Made account.c use purple_connection_get_prpl instead of gc->prpl.
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
22235
diff
changeset
|
2464 | PurplePlugin *prpl = NULL; |
|
25888
d0fdd378a635
Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
25871
diff
changeset
|
2465 | |
|
12645
a907ba243930
[gaim-migrate @ 14983]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12420
diff
changeset
|
2466 | g_return_val_if_fail(account, FALSE); |
|
a907ba243930
[gaim-migrate @ 14983]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12420
diff
changeset
|
2467 | g_return_val_if_fail(buddy, FALSE); |
|
a907ba243930
[gaim-migrate @ 14983]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12420
diff
changeset
|
2468 | |
| 15884 | 2469 | gc = purple_account_get_connection(account); |
|
12645
a907ba243930
[gaim-migrate @ 14983]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12420
diff
changeset
|
2470 | if (gc == NULL) |
|
a907ba243930
[gaim-migrate @ 14983]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12420
diff
changeset
|
2471 | return FALSE; |
|
25888
d0fdd378a635
Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
25871
diff
changeset
|
2472 | |
|
d0fdd378a635
Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
25871
diff
changeset
|
2473 | prpl = purple_connection_get_prpl(gc); |
|
22357
6f3b94a801a5
Made account.c use purple_connection_get_prpl instead of gc->prpl.
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
22235
diff
changeset
|
2474 | |
|
6f3b94a801a5
Made account.c use purple_connection_get_prpl instead of gc->prpl.
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
22235
diff
changeset
|
2475 | if (prpl != NULL) |
|
6f3b94a801a5
Made account.c use purple_connection_get_prpl instead of gc->prpl.
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
22235
diff
changeset
|
2476 | prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); |
|
12645
a907ba243930
[gaim-migrate @ 14983]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12420
diff
changeset
|
2477 | |
|
a907ba243930
[gaim-migrate @ 14983]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12420
diff
changeset
|
2478 | if (!prpl_info || !prpl_info->offline_message) |
|
a907ba243930
[gaim-migrate @ 14983]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12420
diff
changeset
|
2479 | return FALSE; |
|
a907ba243930
[gaim-migrate @ 14983]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12420
diff
changeset
|
2480 | return prpl_info->offline_message(buddy); |
|
a907ba243930
[gaim-migrate @ 14983]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12420
diff
changeset
|
2481 | } |
|
a907ba243930
[gaim-migrate @ 14983]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12420
diff
changeset
|
2482 | |
|
21287
c4971408eae8
Make PurpleAccount keep track of the last connection error suffered (or not, if
Will Thompson <resiak@pidgin.im>
parents:
21233
diff
changeset
|
2483 | static void |
|
c4971408eae8
Make PurpleAccount keep track of the last connection error suffered (or not, if
Will Thompson <resiak@pidgin.im>
parents:
21233
diff
changeset
|
2484 | signed_on_cb(PurpleConnection *gc, |
|
c4971408eae8
Make PurpleAccount keep track of the last connection error suffered (or not, if
Will Thompson <resiak@pidgin.im>
parents:
21233
diff
changeset
|
2485 | gpointer unused) |
|
c4971408eae8
Make PurpleAccount keep track of the last connection error suffered (or not, if
Will Thompson <resiak@pidgin.im>
parents:
21233
diff
changeset
|
2486 | { |
|
c4971408eae8
Make PurpleAccount keep track of the last connection error suffered (or not, if
Will Thompson <resiak@pidgin.im>
parents:
21233
diff
changeset
|
2487 | PurpleAccount *account = purple_connection_get_account(gc); |
|
21311
bca57f8144a1
Add purple_account_clear_current_error(), which does what it says on the tin.
Will Thompson <resiak@pidgin.im>
parents:
21300
diff
changeset
|
2488 | purple_account_clear_current_error(account); |
|
21287
c4971408eae8
Make PurpleAccount keep track of the last connection error suffered (or not, if
Will Thompson <resiak@pidgin.im>
parents:
21233
diff
changeset
|
2489 | } |
|
c4971408eae8
Make PurpleAccount keep track of the last connection error suffered (or not, if
Will Thompson <resiak@pidgin.im>
parents:
21233
diff
changeset
|
2490 | |
|
c4971408eae8
Make PurpleAccount keep track of the last connection error suffered (or not, if
Will Thompson <resiak@pidgin.im>
parents:
21233
diff
changeset
|
2491 | static void |
|
22467
151133154190
Register and unregister the PurpleConnectionErrorInfo pointers with dbus, I
Etan Reisner <deryni@pidgin.im>
parents:
22357
diff
changeset
|
2492 | set_current_error(PurpleAccount *account, PurpleConnectionErrorInfo *new_err) |
|
21312
5ce063b1c3a7
Extract setting an account's current error to a static function. In the
Will Thompson <resiak@pidgin.im>
parents:
21311
diff
changeset
|
2493 | { |
|
22469
b8c7242bd6a2
I'm going to pretend this solves all my problems, except I can't see how
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22357
diff
changeset
|
2494 | PurpleAccountPrivate *priv; |
|
b8c7242bd6a2
I'm going to pretend this solves all my problems, except I can't see how
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22357
diff
changeset
|
2495 | PurpleConnectionErrorInfo *old_err; |
|
b8c7242bd6a2
I'm going to pretend this solves all my problems, except I can't see how
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22357
diff
changeset
|
2496 | |
|
b8c7242bd6a2
I'm going to pretend this solves all my problems, except I can't see how
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22357
diff
changeset
|
2497 | g_return_if_fail(account != NULL); |
|
b8c7242bd6a2
I'm going to pretend this solves all my problems, except I can't see how
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22357
diff
changeset
|
2498 | |
|
b8c7242bd6a2
I'm going to pretend this solves all my problems, except I can't see how
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22357
diff
changeset
|
2499 | priv = PURPLE_ACCOUNT_GET_PRIVATE(account); |
|
b8c7242bd6a2
I'm going to pretend this solves all my problems, except I can't see how
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22357
diff
changeset
|
2500 | old_err = priv->current_error; |
|
21312
5ce063b1c3a7
Extract setting an account's current error to a static function. In the
Will Thompson <resiak@pidgin.im>
parents:
21311
diff
changeset
|
2501 | |
|
5ce063b1c3a7
Extract setting an account's current error to a static function. In the
Will Thompson <resiak@pidgin.im>
parents:
21311
diff
changeset
|
2502 | if(new_err == old_err) |
|
5ce063b1c3a7
Extract setting an account's current error to a static function. In the
Will Thompson <resiak@pidgin.im>
parents:
21311
diff
changeset
|
2503 | return; |
|
5ce063b1c3a7
Extract setting an account's current error to a static function. In the
Will Thompson <resiak@pidgin.im>
parents:
21311
diff
changeset
|
2504 | |
|
5ce063b1c3a7
Extract setting an account's current error to a static function. In the
Will Thompson <resiak@pidgin.im>
parents:
21311
diff
changeset
|
2505 | priv->current_error = new_err; |
|
5ce063b1c3a7
Extract setting an account's current error to a static function. In the
Will Thompson <resiak@pidgin.im>
parents:
21311
diff
changeset
|
2506 | |
|
5ce063b1c3a7
Extract setting an account's current error to a static function. In the
Will Thompson <resiak@pidgin.im>
parents:
21311
diff
changeset
|
2507 | purple_signal_emit(purple_accounts_get_handle(), |
|
5ce063b1c3a7
Extract setting an account's current error to a static function. In the
Will Thompson <resiak@pidgin.im>
parents:
21311
diff
changeset
|
2508 | "account-error-changed", |
|
5ce063b1c3a7
Extract setting an account's current error to a static function. In the
Will Thompson <resiak@pidgin.im>
parents:
21311
diff
changeset
|
2509 | account, old_err, new_err); |
|
21314
b5c3b211f866
Save accounts' current errors to accounts.xml, and restore them at startup.
Will Thompson <resiak@pidgin.im>
parents:
21312
diff
changeset
|
2510 | schedule_accounts_save(); |
|
21312
5ce063b1c3a7
Extract setting an account's current error to a static function. In the
Will Thompson <resiak@pidgin.im>
parents:
21311
diff
changeset
|
2511 | |
|
5ce063b1c3a7
Extract setting an account's current error to a static function. In the
Will Thompson <resiak@pidgin.im>
parents:
21311
diff
changeset
|
2512 | if(old_err) |
|
5ce063b1c3a7
Extract setting an account's current error to a static function. In the
Will Thompson <resiak@pidgin.im>
parents:
21311
diff
changeset
|
2513 | g_free(old_err->description); |
|
5ce063b1c3a7
Extract setting an account's current error to a static function. In the
Will Thompson <resiak@pidgin.im>
parents:
21311
diff
changeset
|
2514 | |
|
22467
151133154190
Register and unregister the PurpleConnectionErrorInfo pointers with dbus, I
Etan Reisner <deryni@pidgin.im>
parents:
22357
diff
changeset
|
2515 | PURPLE_DBUS_UNREGISTER_POINTER(old_err); |
|
21312
5ce063b1c3a7
Extract setting an account's current error to a static function. In the
Will Thompson <resiak@pidgin.im>
parents:
21311
diff
changeset
|
2516 | g_free(old_err); |
|
5ce063b1c3a7
Extract setting an account's current error to a static function. In the
Will Thompson <resiak@pidgin.im>
parents:
21311
diff
changeset
|
2517 | } |
|
5ce063b1c3a7
Extract setting an account's current error to a static function. In the
Will Thompson <resiak@pidgin.im>
parents:
21311
diff
changeset
|
2518 | |
|
5ce063b1c3a7
Extract setting an account's current error to a static function. In the
Will Thompson <resiak@pidgin.im>
parents:
21311
diff
changeset
|
2519 | static void |
|
21287
c4971408eae8
Make PurpleAccount keep track of the last connection error suffered (or not, if
Will Thompson <resiak@pidgin.im>
parents:
21233
diff
changeset
|
2520 | connection_error_cb(PurpleConnection *gc, |
|
21312
5ce063b1c3a7
Extract setting an account's current error to a static function. In the
Will Thompson <resiak@pidgin.im>
parents:
21311
diff
changeset
|
2521 | PurpleConnectionError type, |
|
5ce063b1c3a7
Extract setting an account's current error to a static function. In the
Will Thompson <resiak@pidgin.im>
parents:
21311
diff
changeset
|
2522 | const gchar *description, |
|
21287
c4971408eae8
Make PurpleAccount keep track of the last connection error suffered (or not, if
Will Thompson <resiak@pidgin.im>
parents:
21233
diff
changeset
|
2523 | gpointer unused) |
|
c4971408eae8
Make PurpleAccount keep track of the last connection error suffered (or not, if
Will Thompson <resiak@pidgin.im>
parents:
21233
diff
changeset
|
2524 | { |
|
22469
b8c7242bd6a2
I'm going to pretend this solves all my problems, except I can't see how
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22357
diff
changeset
|
2525 | PurpleAccount *account; |
|
b8c7242bd6a2
I'm going to pretend this solves all my problems, except I can't see how
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22357
diff
changeset
|
2526 | PurpleConnectionErrorInfo *err; |
|
b8c7242bd6a2
I'm going to pretend this solves all my problems, except I can't see how
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22357
diff
changeset
|
2527 | |
|
b8c7242bd6a2
I'm going to pretend this solves all my problems, except I can't see how
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22357
diff
changeset
|
2528 | account = purple_connection_get_account(gc); |
|
b8c7242bd6a2
I'm going to pretend this solves all my problems, except I can't see how
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22357
diff
changeset
|
2529 | |
|
b8c7242bd6a2
I'm going to pretend this solves all my problems, except I can't see how
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22357
diff
changeset
|
2530 | g_return_if_fail(account != NULL); |
|
b8c7242bd6a2
I'm going to pretend this solves all my problems, except I can't see how
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22357
diff
changeset
|
2531 | |
|
b8c7242bd6a2
I'm going to pretend this solves all my problems, except I can't see how
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
22357
diff
changeset
|
2532 | err = g_new0(PurpleConnectionErrorInfo, 1); |
|
22484
669b07a614b1
Add this back, the merge lost it.
Etan Reisner <deryni@pidgin.im>
parents:
22473
diff
changeset
|
2533 | PURPLE_DBUS_REGISTER_POINTER(err, PurpleConnectionErrorInfo); |
|
21312
5ce063b1c3a7
Extract setting an account's current error to a static function. In the
Will Thompson <resiak@pidgin.im>
parents:
21311
diff
changeset
|
2534 | |
|
5ce063b1c3a7
Extract setting an account's current error to a static function. In the
Will Thompson <resiak@pidgin.im>
parents:
21311
diff
changeset
|
2535 | err->type = type; |
|
5ce063b1c3a7
Extract setting an account's current error to a static function. In the
Will Thompson <resiak@pidgin.im>
parents:
21311
diff
changeset
|
2536 | err->description = g_strdup(description); |
|
5ce063b1c3a7
Extract setting an account's current error to a static function. In the
Will Thompson <resiak@pidgin.im>
parents:
21311
diff
changeset
|
2537 | |
|
5ce063b1c3a7
Extract setting an account's current error to a static function. In the
Will Thompson <resiak@pidgin.im>
parents:
21311
diff
changeset
|
2538 | set_current_error(account, err); |
|
21287
c4971408eae8
Make PurpleAccount keep track of the last connection error suffered (or not, if
Will Thompson <resiak@pidgin.im>
parents:
21233
diff
changeset
|
2539 | } |
|
c4971408eae8
Make PurpleAccount keep track of the last connection error suffered (or not, if
Will Thompson <resiak@pidgin.im>
parents:
21233
diff
changeset
|
2540 | |
|
21298
d0d9cfaf3fe7
Mark pointed out that PurpleConnectionErrorPair is not a very good name for the
Will Thompson <resiak@pidgin.im>
parents:
21295
diff
changeset
|
2541 | const PurpleConnectionErrorInfo * |
|
21287
c4971408eae8
Make PurpleAccount keep track of the last connection error suffered (or not, if
Will Thompson <resiak@pidgin.im>
parents:
21233
diff
changeset
|
2542 | purple_account_get_current_error(PurpleAccount *account) |
|
c4971408eae8
Make PurpleAccount keep track of the last connection error suffered (or not, if
Will Thompson <resiak@pidgin.im>
parents:
21233
diff
changeset
|
2543 | { |
|
c4971408eae8
Make PurpleAccount keep track of the last connection error suffered (or not, if
Will Thompson <resiak@pidgin.im>
parents:
21233
diff
changeset
|
2544 | PurpleAccountPrivate *priv = PURPLE_ACCOUNT_GET_PRIVATE(account); |
|
c4971408eae8
Make PurpleAccount keep track of the last connection error suffered (or not, if
Will Thompson <resiak@pidgin.im>
parents:
21233
diff
changeset
|
2545 | return priv->current_error; |
|
c4971408eae8
Make PurpleAccount keep track of the last connection error suffered (or not, if
Will Thompson <resiak@pidgin.im>
parents:
21233
diff
changeset
|
2546 | } |
|
c4971408eae8
Make PurpleAccount keep track of the last connection error suffered (or not, if
Will Thompson <resiak@pidgin.im>
parents:
21233
diff
changeset
|
2547 | |
|
21504
0c78851f576b
Propagating ipp to im.pidgin.cpw.resiak.disconnectreason caused
Will Thompson <resiak@pidgin.im>
parents:
21503
diff
changeset
|
2548 | void |
|
0c78851f576b
Propagating ipp to im.pidgin.cpw.resiak.disconnectreason caused
Will Thompson <resiak@pidgin.im>
parents:
21503
diff
changeset
|
2549 | purple_account_clear_current_error(PurpleAccount *account) |
|
21311
bca57f8144a1
Add purple_account_clear_current_error(), which does what it says on the tin.
Will Thompson <resiak@pidgin.im>
parents:
21300
diff
changeset
|
2550 | { |
|
21504
0c78851f576b
Propagating ipp to im.pidgin.cpw.resiak.disconnectreason caused
Will Thompson <resiak@pidgin.im>
parents:
21503
diff
changeset
|
2551 | set_current_error(account, NULL); |
|
21311
bca57f8144a1
Add purple_account_clear_current_error(), which does what it says on the tin.
Will Thompson <resiak@pidgin.im>
parents:
21300
diff
changeset
|
2552 | } |
|
21504
0c78851f576b
Propagating ipp to im.pidgin.cpw.resiak.disconnectreason caused
Will Thompson <resiak@pidgin.im>
parents:
21503
diff
changeset
|
2553 | |
|
11643
f04408721780
[gaim-migrate @ 13920]
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
11638
diff
changeset
|
2554 | void |
| 15884 | 2555 | purple_accounts_add(PurpleAccount *account) |
|
5710
3c2bf5725bb0
[gaim-migrate @ 6131]
Christian Hammond <chipx86@chipx86.com>
parents:
5707
diff
changeset
|
2556 | { |
|
3c2bf5725bb0
[gaim-migrate @ 6131]
Christian Hammond <chipx86@chipx86.com>
parents:
5707
diff
changeset
|
2557 | g_return_if_fail(account != NULL); |
|
3c2bf5725bb0
[gaim-migrate @ 6131]
Christian Hammond <chipx86@chipx86.com>
parents:
5707
diff
changeset
|
2558 | |
|
5867
46d0ef5058c7
[gaim-migrate @ 6298]
Christian Hammond <chipx86@chipx86.com>
parents:
5865
diff
changeset
|
2559 | if (g_list_find(accounts, account) != NULL) |
|
46d0ef5058c7
[gaim-migrate @ 6298]
Christian Hammond <chipx86@chipx86.com>
parents:
5865
diff
changeset
|
2560 | return; |
|
46d0ef5058c7
[gaim-migrate @ 6298]
Christian Hammond <chipx86@chipx86.com>
parents:
5865
diff
changeset
|
2561 | |
|
5710
3c2bf5725bb0
[gaim-migrate @ 6131]
Christian Hammond <chipx86@chipx86.com>
parents:
5707
diff
changeset
|
2562 | accounts = g_list_append(accounts, account); |
|
3c2bf5725bb0
[gaim-migrate @ 6131]
Christian Hammond <chipx86@chipx86.com>
parents:
5707
diff
changeset
|
2563 | |
|
3c2bf5725bb0
[gaim-migrate @ 6131]
Christian Hammond <chipx86@chipx86.com>
parents:
5707
diff
changeset
|
2564 | schedule_accounts_save(); |
| 8134 | 2565 | |
| 15884 | 2566 | purple_signal_emit(purple_accounts_get_handle(), "account-added", account); |
|
5710
3c2bf5725bb0
[gaim-migrate @ 6131]
Christian Hammond <chipx86@chipx86.com>
parents:
5707
diff
changeset
|
2567 | } |
|
3c2bf5725bb0
[gaim-migrate @ 6131]
Christian Hammond <chipx86@chipx86.com>
parents:
5707
diff
changeset
|
2568 | |
|
3c2bf5725bb0
[gaim-migrate @ 6131]
Christian Hammond <chipx86@chipx86.com>
parents:
5707
diff
changeset
|
2569 | void |
| 15884 | 2570 | purple_accounts_remove(PurpleAccount *account) |
|
5710
3c2bf5725bb0
[gaim-migrate @ 6131]
Christian Hammond <chipx86@chipx86.com>
parents:
5707
diff
changeset
|
2571 | { |
|
3c2bf5725bb0
[gaim-migrate @ 6131]
Christian Hammond <chipx86@chipx86.com>
parents:
5707
diff
changeset
|
2572 | g_return_if_fail(account != NULL); |
|
3c2bf5725bb0
[gaim-migrate @ 6131]
Christian Hammond <chipx86@chipx86.com>
parents:
5707
diff
changeset
|
2573 | |
|
3c2bf5725bb0
[gaim-migrate @ 6131]
Christian Hammond <chipx86@chipx86.com>
parents:
5707
diff
changeset
|
2574 | accounts = g_list_remove(accounts, account); |
|
3c2bf5725bb0
[gaim-migrate @ 6131]
Christian Hammond <chipx86@chipx86.com>
parents:
5707
diff
changeset
|
2575 | |
|
3c2bf5725bb0
[gaim-migrate @ 6131]
Christian Hammond <chipx86@chipx86.com>
parents:
5707
diff
changeset
|
2576 | schedule_accounts_save(); |
| 8134 | 2577 | |
|
21300
1c23e08cb824
Document exactly how long the PurpleConnectionErrorInfo pointers given out by
Will Thompson <resiak@pidgin.im>
parents:
21298
diff
changeset
|
2578 | /* Clearing the error ensures that account-error-changed is emitted, |
|
1c23e08cb824
Document exactly how long the PurpleConnectionErrorInfo pointers given out by
Will Thompson <resiak@pidgin.im>
parents:
21298
diff
changeset
|
2579 | * which is the end of the guarantee that the the error's pointer is |
|
1c23e08cb824
Document exactly how long the PurpleConnectionErrorInfo pointers given out by
Will Thompson <resiak@pidgin.im>
parents:
21298
diff
changeset
|
2580 | * valid. |
|
1c23e08cb824
Document exactly how long the PurpleConnectionErrorInfo pointers given out by
Will Thompson <resiak@pidgin.im>
parents:
21298
diff
changeset
|
2581 | */ |
|
21311
bca57f8144a1
Add purple_account_clear_current_error(), which does what it says on the tin.
Will Thompson <resiak@pidgin.im>
parents:
21300
diff
changeset
|
2582 | purple_account_clear_current_error(account); |
| 15884 | 2583 | purple_signal_emit(purple_accounts_get_handle(), "account-removed", account); |
|
6368
ab9f99269dfe
[gaim-migrate @ 6873]
Christian Hammond <chipx86@chipx86.com>
parents:
6367
diff
changeset
|
2584 | } |
|
ab9f99269dfe
[gaim-migrate @ 6873]
Christian Hammond <chipx86@chipx86.com>
parents:
6367
diff
changeset
|
2585 | |
|
ab9f99269dfe
[gaim-migrate @ 6873]
Christian Hammond <chipx86@chipx86.com>
parents:
6367
diff
changeset
|
2586 | void |
| 15884 | 2587 | purple_accounts_delete(PurpleAccount *account) |
|
6368
ab9f99269dfe
[gaim-migrate @ 6873]
Christian Hammond <chipx86@chipx86.com>
parents:
6367
diff
changeset
|
2588 | { |
| 15884 | 2589 | PurpleBlistNode *gnode, *cnode, *bnode; |
|
18636
34c1a17a91d7
Do not crash if you delete an account with an open conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18190
diff
changeset
|
2590 | GList *iter; |
|
6368
ab9f99269dfe
[gaim-migrate @ 6873]
Christian Hammond <chipx86@chipx86.com>
parents:
6367
diff
changeset
|
2591 | |
|
ab9f99269dfe
[gaim-migrate @ 6873]
Christian Hammond <chipx86@chipx86.com>
parents:
6367
diff
changeset
|
2592 | g_return_if_fail(account != NULL); |
|
ab9f99269dfe
[gaim-migrate @ 6873]
Christian Hammond <chipx86@chipx86.com>
parents:
6367
diff
changeset
|
2593 | |
| 14971 | 2594 | /* |
| 2595 | * Disable the account before blowing it out of the water. | |
| 2596 | * Conceptually it probably makes more sense to disable the | |
| 2597 | * account for all UIs rather than the just the current UI, | |
| 2598 | * but it doesn't really matter. | |
| 2599 | */ | |
| 15884 | 2600 | purple_account_set_enabled(account, purple_core_get_ui(), FALSE); |
| 2601 | ||
| 2602 | purple_notify_close_with_handle(account); | |
| 2603 | purple_request_close_with_handle(account); | |
| 2604 | ||
| 2605 | purple_accounts_remove(account); | |
|
6367
721511f43350
[gaim-migrate @ 6872]
Christian Hammond <chipx86@chipx86.com>
parents:
6366
diff
changeset
|
2606 | |
| 8235 | 2607 | /* Remove this account's buddies */ |
|
24955
77727fac30c6
Finish off the libpurple updates for the hidden blist structs
Gary Kramlich <grim@reaperworld.com>
parents:
24569
diff
changeset
|
2608 | for (gnode = purple_blist_get_root(); |
|
77727fac30c6
Finish off the libpurple updates for the hidden blist structs
Gary Kramlich <grim@reaperworld.com>
parents:
24569
diff
changeset
|
2609 | gnode != NULL; |
|
77727fac30c6
Finish off the libpurple updates for the hidden blist structs
Gary Kramlich <grim@reaperworld.com>
parents:
24569
diff
changeset
|
2610 | gnode = purple_blist_node_get_sibling_next(gnode)) |
|
77727fac30c6
Finish off the libpurple updates for the hidden blist structs
Gary Kramlich <grim@reaperworld.com>
parents:
24569
diff
changeset
|
2611 | { |
| 15884 | 2612 | if (!PURPLE_BLIST_NODE_IS_GROUP(gnode)) |
|
6367
721511f43350
[gaim-migrate @ 6872]
Christian Hammond <chipx86@chipx86.com>
parents:
6366
diff
changeset
|
2613 | continue; |
|
10106
2ba5aef13261
[gaim-migrate @ 11138]
Luke Schierer <lschiere@pidgin.im>
parents:
10067
diff
changeset
|
2614 | |
|
24955
77727fac30c6
Finish off the libpurple updates for the hidden blist structs
Gary Kramlich <grim@reaperworld.com>
parents:
24569
diff
changeset
|
2615 | cnode = purple_blist_node_get_first_child(gnode); |
|
10106
2ba5aef13261
[gaim-migrate @ 11138]
Luke Schierer <lschiere@pidgin.im>
parents:
10067
diff
changeset
|
2616 | while (cnode) { |
|
24955
77727fac30c6
Finish off the libpurple updates for the hidden blist structs
Gary Kramlich <grim@reaperworld.com>
parents:
24569
diff
changeset
|
2617 | PurpleBlistNode *cnode_next = purple_blist_node_get_sibling_next(cnode); |
| 15884 | 2618 | |
| 2619 | if(PURPLE_BLIST_NODE_IS_CONTACT(cnode)) { | |
|
24955
77727fac30c6
Finish off the libpurple updates for the hidden blist structs
Gary Kramlich <grim@reaperworld.com>
parents:
24569
diff
changeset
|
2620 | bnode = purple_blist_node_get_first_child(cnode); |
|
10106
2ba5aef13261
[gaim-migrate @ 11138]
Luke Schierer <lschiere@pidgin.im>
parents:
10067
diff
changeset
|
2621 | while (bnode) { |
|
24955
77727fac30c6
Finish off the libpurple updates for the hidden blist structs
Gary Kramlich <grim@reaperworld.com>
parents:
24569
diff
changeset
|
2622 | PurpleBlistNode *bnode_next = purple_blist_node_get_sibling_next(bnode); |
| 15884 | 2623 | |
| 2624 | if (PURPLE_BLIST_NODE_IS_BUDDY(bnode)) { | |
| 2625 | PurpleBuddy *b = (PurpleBuddy *)bnode; | |
|
6367
721511f43350
[gaim-migrate @ 6872]
Christian Hammond <chipx86@chipx86.com>
parents:
6366
diff
changeset
|
2626 | |
|
24955
77727fac30c6
Finish off the libpurple updates for the hidden blist structs
Gary Kramlich <grim@reaperworld.com>
parents:
24569
diff
changeset
|
2627 | if (purple_buddy_get_account(b) == account) |
| 15884 | 2628 | purple_blist_remove_buddy(b); |
| 6695 | 2629 | } |
|
10106
2ba5aef13261
[gaim-migrate @ 11138]
Luke Schierer <lschiere@pidgin.im>
parents:
10067
diff
changeset
|
2630 | bnode = bnode_next; |
| 6695 | 2631 | } |
| 15884 | 2632 | } else if (PURPLE_BLIST_NODE_IS_CHAT(cnode)) { |
| 2633 | PurpleChat *c = (PurpleChat *)cnode; | |
|
6367
721511f43350
[gaim-migrate @ 6872]
Christian Hammond <chipx86@chipx86.com>
parents:
6366
diff
changeset
|
2634 | |
|
24955
77727fac30c6
Finish off the libpurple updates for the hidden blist structs
Gary Kramlich <grim@reaperworld.com>
parents:
24569
diff
changeset
|
2635 | if (purple_chat_get_account(c) == account) |
| 15884 | 2636 | purple_blist_remove_chat(c); |
|
6367
721511f43350
[gaim-migrate @ 6872]
Christian Hammond <chipx86@chipx86.com>
parents:
6366
diff
changeset
|
2637 | } |
|
10106
2ba5aef13261
[gaim-migrate @ 11138]
Luke Schierer <lschiere@pidgin.im>
parents:
10067
diff
changeset
|
2638 | cnode = cnode_next; |
|
6367
721511f43350
[gaim-migrate @ 6872]
Christian Hammond <chipx86@chipx86.com>
parents:
6366
diff
changeset
|
2639 | } |
|
721511f43350
[gaim-migrate @ 6872]
Christian Hammond <chipx86@chipx86.com>
parents:
6366
diff
changeset
|
2640 | } |
|
721511f43350
[gaim-migrate @ 6872]
Christian Hammond <chipx86@chipx86.com>
parents:
6366
diff
changeset
|
2641 | |
|
18636
34c1a17a91d7
Do not crash if you delete an account with an open conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18190
diff
changeset
|
2642 | /* Remove any open conversation for this account */ |
|
34c1a17a91d7
Do not crash if you delete an account with an open conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18190
diff
changeset
|
2643 | for (iter = purple_get_conversations(); iter; ) { |
|
34c1a17a91d7
Do not crash if you delete an account with an open conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18190
diff
changeset
|
2644 | PurpleConversation *conv = iter->data; |
|
34c1a17a91d7
Do not crash if you delete an account with an open conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18190
diff
changeset
|
2645 | iter = iter->next; |
|
34c1a17a91d7
Do not crash if you delete an account with an open conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18190
diff
changeset
|
2646 | if (purple_conversation_get_account(conv) == account) |
|
34c1a17a91d7
Do not crash if you delete an account with an open conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18190
diff
changeset
|
2647 | purple_conversation_destroy(conv); |
|
34c1a17a91d7
Do not crash if you delete an account with an open conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18190
diff
changeset
|
2648 | } |
|
34c1a17a91d7
Do not crash if you delete an account with an open conversation.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18190
diff
changeset
|
2649 | |
| 8235 | 2650 | /* Remove this account's pounces */ |
| 15884 | 2651 | purple_pounce_destroy_all_by_account(account); |
|
6368
ab9f99269dfe
[gaim-migrate @ 6873]
Christian Hammond <chipx86@chipx86.com>
parents:
6367
diff
changeset
|
2652 | |
|
11303
448b8bae1ca7
[gaim-migrate @ 13503]
Richard Laager <rlaager@pidgin.im>
parents:
11298
diff
changeset
|
2653 | /* This will cause the deletion of an old buddy icon. */ |
|
16538
c7e61e2917c9
Updates for the account buddy icon stuff. This doesn't yet work fully (and maybe not even partly), but it compiles.
Richard Laager <rlaager@pidgin.im>
parents:
16180
diff
changeset
|
2654 | purple_buddy_icons_set_account_icon(account, NULL, 0); |
| 15884 | 2655 | |
| 2656 | purple_account_destroy(account); | |
|
5710
3c2bf5725bb0
[gaim-migrate @ 6131]
Christian Hammond <chipx86@chipx86.com>
parents:
5707
diff
changeset
|
2657 | } |
|
3c2bf5725bb0
[gaim-migrate @ 6131]
Christian Hammond <chipx86@chipx86.com>
parents:
5707
diff
changeset
|
2658 | |
|
3c2bf5725bb0
[gaim-migrate @ 6131]
Christian Hammond <chipx86@chipx86.com>
parents:
5707
diff
changeset
|
2659 | void |
| 15884 | 2660 | purple_accounts_reorder(PurpleAccount *account, gint new_index) |
|
5580
a5a3e6dfb409
[gaim-migrate @ 5984]
Christian Hammond <chipx86@chipx86.com>
parents:
5574
diff
changeset
|
2661 | { |
|
12420
00bd43a1ac8a
[gaim-migrate @ 14727]
Richard Laager <rlaager@pidgin.im>
parents:
12287
diff
changeset
|
2662 | gint index; |
|
5580
a5a3e6dfb409
[gaim-migrate @ 5984]
Christian Hammond <chipx86@chipx86.com>
parents:
5574
diff
changeset
|
2663 | GList *l; |
|
a5a3e6dfb409
[gaim-migrate @ 5984]
Christian Hammond <chipx86@chipx86.com>
parents:
5574
diff
changeset
|
2664 | |
|
a5a3e6dfb409
[gaim-migrate @ 5984]
Christian Hammond <chipx86@chipx86.com>
parents:
5574
diff
changeset
|
2665 | g_return_if_fail(account != NULL); |
|
12420
00bd43a1ac8a
[gaim-migrate @ 14727]
Richard Laager <rlaager@pidgin.im>
parents:
12287
diff
changeset
|
2666 | g_return_if_fail(new_index <= g_list_length(accounts)); |
|
5580
a5a3e6dfb409
[gaim-migrate @ 5984]
Christian Hammond <chipx86@chipx86.com>
parents:
5574
diff
changeset
|
2667 | |
|
a5a3e6dfb409
[gaim-migrate @ 5984]
Christian Hammond <chipx86@chipx86.com>
parents:
5574
diff
changeset
|
2668 | index = g_list_index(accounts, account); |
|
a5a3e6dfb409
[gaim-migrate @ 5984]
Christian Hammond <chipx86@chipx86.com>
parents:
5574
diff
changeset
|
2669 | |
|
a5a3e6dfb409
[gaim-migrate @ 5984]
Christian Hammond <chipx86@chipx86.com>
parents:
5574
diff
changeset
|
2670 | if (index == -1) { |
| 15884 | 2671 | purple_debug_error("account", |
|
5580
a5a3e6dfb409
[gaim-migrate @ 5984]
Christian Hammond <chipx86@chipx86.com>
parents:
5574
diff
changeset
|
2672 | "Unregistered account (%s) discovered during reorder!\n", |
| 15884 | 2673 | purple_account_get_username(account)); |
|
5580
a5a3e6dfb409
[gaim-migrate @ 5984]
Christian Hammond <chipx86@chipx86.com>
parents:
5574
diff
changeset
|
2674 | return; |
|
a5a3e6dfb409
[gaim-migrate @ 5984]
Christian Hammond <chipx86@chipx86.com>
parents:
5574
diff
changeset
|
2675 | } |
|
a5a3e6dfb409
[gaim-migrate @ 5984]
Christian Hammond <chipx86@chipx86.com>
parents:
5574
diff
changeset
|
2676 | |
|
a5a3e6dfb409
[gaim-migrate @ 5984]
Christian Hammond <chipx86@chipx86.com>
parents:
5574
diff
changeset
|
2677 | l = g_list_nth(accounts, index); |
|
a5a3e6dfb409
[gaim-migrate @ 5984]
Christian Hammond <chipx86@chipx86.com>
parents:
5574
diff
changeset
|
2678 | |
|
a5a3e6dfb409
[gaim-migrate @ 5984]
Christian Hammond <chipx86@chipx86.com>
parents:
5574
diff
changeset
|
2679 | if (new_index > index) |
|
a5a3e6dfb409
[gaim-migrate @ 5984]
Christian Hammond <chipx86@chipx86.com>
parents:
5574
diff
changeset
|
2680 | new_index--; |
|
a5a3e6dfb409
[gaim-migrate @ 5984]
Christian Hammond <chipx86@chipx86.com>
parents:
5574
diff
changeset
|
2681 | |
|
a5a3e6dfb409
[gaim-migrate @ 5984]
Christian Hammond <chipx86@chipx86.com>
parents:
5574
diff
changeset
|
2682 | /* Remove the old one. */ |
|
a5a3e6dfb409
[gaim-migrate @ 5984]
Christian Hammond <chipx86@chipx86.com>
parents:
5574
diff
changeset
|
2683 | accounts = g_list_delete_link(accounts, l); |
|
a5a3e6dfb409
[gaim-migrate @ 5984]
Christian Hammond <chipx86@chipx86.com>
parents:
5574
diff
changeset
|
2684 | |
|
a5a3e6dfb409
[gaim-migrate @ 5984]
Christian Hammond <chipx86@chipx86.com>
parents:
5574
diff
changeset
|
2685 | /* Insert it where it should go. */ |
|
a5a3e6dfb409
[gaim-migrate @ 5984]
Christian Hammond <chipx86@chipx86.com>
parents:
5574
diff
changeset
|
2686 | accounts = g_list_insert(accounts, account, new_index); |
|
a5a3e6dfb409
[gaim-migrate @ 5984]
Christian Hammond <chipx86@chipx86.com>
parents:
5574
diff
changeset
|
2687 | |
|
a5a3e6dfb409
[gaim-migrate @ 5984]
Christian Hammond <chipx86@chipx86.com>
parents:
5574
diff
changeset
|
2688 | schedule_accounts_save(); |
|
a5a3e6dfb409
[gaim-migrate @ 5984]
Christian Hammond <chipx86@chipx86.com>
parents:
5574
diff
changeset
|
2689 | } |
|
5573
633880e3f137
[gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents:
5565
diff
changeset
|
2690 | |
|
18122
9bf9970c1b6a
disapproval of revision '2d8ea56b90971e7851442d96b7d74ecb4f052126'
Richard Laager <rlaager@pidgin.im>
parents:
18121
diff
changeset
|
2691 | GList * |
| 15884 | 2692 | purple_accounts_get_all(void) |
| 5563 | 2693 | { |
| 2694 | return accounts; | |
| 2695 | } | |
|
5874
5e19273d3c6f
[gaim-migrate @ 6306]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
2696 | |
|
11053
6d2abb51e586
[gaim-migrate @ 12991]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11042
diff
changeset
|
2697 | GList * |
| 15884 | 2698 | purple_accounts_get_all_active(void) |
|
11053
6d2abb51e586
[gaim-migrate @ 12991]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11042
diff
changeset
|
2699 | { |
|
6d2abb51e586
[gaim-migrate @ 12991]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11042
diff
changeset
|
2700 | GList *list = NULL; |
|
18122
9bf9970c1b6a
disapproval of revision '2d8ea56b90971e7851442d96b7d74ecb4f052126'
Richard Laager <rlaager@pidgin.im>
parents:
18121
diff
changeset
|
2701 | GList *all = purple_accounts_get_all(); |
|
11053
6d2abb51e586
[gaim-migrate @ 12991]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11042
diff
changeset
|
2702 | |
|
6d2abb51e586
[gaim-migrate @ 12991]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11042
diff
changeset
|
2703 | while (all != NULL) { |
| 15884 | 2704 | PurpleAccount *account = all->data; |
| 2705 | ||
| 2706 | if (purple_account_get_enabled(account, purple_core_get_ui())) | |
|
11053
6d2abb51e586
[gaim-migrate @ 12991]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11042
diff
changeset
|
2707 | list = g_list_append(list, account); |
|
6d2abb51e586
[gaim-migrate @ 12991]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11042
diff
changeset
|
2708 | |
|
6d2abb51e586
[gaim-migrate @ 12991]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11042
diff
changeset
|
2709 | all = all->next; |
|
6d2abb51e586
[gaim-migrate @ 12991]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11042
diff
changeset
|
2710 | } |
|
6d2abb51e586
[gaim-migrate @ 12991]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11042
diff
changeset
|
2711 | |
|
6d2abb51e586
[gaim-migrate @ 12991]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11042
diff
changeset
|
2712 | return list; |
|
6d2abb51e586
[gaim-migrate @ 12991]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11042
diff
changeset
|
2713 | } |
|
6d2abb51e586
[gaim-migrate @ 12991]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11042
diff
changeset
|
2714 | |
| 15884 | 2715 | PurpleAccount * |
| 2716 | purple_accounts_find(const char *name, const char *protocol_id) | |
|
5943
8a052155157a
[gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents:
5942
diff
changeset
|
2717 | { |
| 15884 | 2718 | PurpleAccount *account = NULL; |
|
18122
9bf9970c1b6a
disapproval of revision '2d8ea56b90971e7851442d96b7d74ecb4f052126'
Richard Laager <rlaager@pidgin.im>
parents:
18121
diff
changeset
|
2719 | GList *l; |
|
5943
8a052155157a
[gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents:
5942
diff
changeset
|
2720 | char *who; |
|
8a052155157a
[gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents:
5942
diff
changeset
|
2721 | |
|
8a052155157a
[gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents:
5942
diff
changeset
|
2722 | g_return_val_if_fail(name != NULL, NULL); |
|
8a052155157a
[gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents:
5942
diff
changeset
|
2723 | |
| 15884 | 2724 | for (l = purple_accounts_get_all(); l != NULL; l = l->next) { |
| 2725 | account = (PurpleAccount *)l->data; | |
|
25859
b42be7bb9dac
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents:
25140
diff
changeset
|
2726 | if (protocol_id && !purple_strequal(account->protocol_id, protocol_id)) |
|
24230
2864aab4b78f
An optimization for purple_accounts_find() to eliminate a malloc/free per
Daniel Atallah <datallah@pidgin.im>
parents:
22854
diff
changeset
|
2727 | continue; |
| 15884 | 2728 | |
|
21907
93b5df5b5d1c
Normalize the names appropriately when searching for accounts. This should
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21890
diff
changeset
|
2729 | who = g_strdup(purple_normalize(account, name)); |
|
25859
b42be7bb9dac
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents:
25140
diff
changeset
|
2730 | if (purple_strequal(purple_normalize(account, purple_account_get_username(account)), who)) { |
|
21907
93b5df5b5d1c
Normalize the names appropriately when searching for accounts. This should
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21890
diff
changeset
|
2731 | g_free(who); |
|
24230
2864aab4b78f
An optimization for purple_accounts_find() to eliminate a malloc/free per
Daniel Atallah <datallah@pidgin.im>
parents:
22854
diff
changeset
|
2732 | return account; |
|
5943
8a052155157a
[gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents:
5942
diff
changeset
|
2733 | } |
|
21907
93b5df5b5d1c
Normalize the names appropriately when searching for accounts. This should
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21890
diff
changeset
|
2734 | g_free(who); |
|
5943
8a052155157a
[gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents:
5942
diff
changeset
|
2735 | } |
|
8a052155157a
[gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents:
5942
diff
changeset
|
2736 | |
|
24230
2864aab4b78f
An optimization for purple_accounts_find() to eliminate a malloc/free per
Daniel Atallah <datallah@pidgin.im>
parents:
22854
diff
changeset
|
2737 | return NULL; |
|
5943
8a052155157a
[gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents:
5942
diff
changeset
|
2738 | } |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6368
diff
changeset
|
2739 | |
|
7015
bea9111282b3
[gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
2740 | void |
| 15884 | 2741 | purple_accounts_restore_current_statuses() |
|
11348
b8938b189d61
[gaim-migrate @ 13565]
Mark Doliner <markdoliner@pidgin.im>
parents:
11320
diff
changeset
|
2742 | { |
|
18122
9bf9970c1b6a
disapproval of revision '2d8ea56b90971e7851442d96b7d74ecb4f052126'
Richard Laager <rlaager@pidgin.im>
parents:
18121
diff
changeset
|
2743 | GList *l; |
| 15884 | 2744 | PurpleAccount *account; |
|
11348
b8938b189d61
[gaim-migrate @ 13565]
Mark Doliner <markdoliner@pidgin.im>
parents:
11320
diff
changeset
|
2745 | |
| 14758 | 2746 | /* If we're not connected to the Internet right now, we bail on this */ |
| 15884 | 2747 | if (!purple_network_is_available()) |
| 14758 | 2748 | { |
|
27497
2dc5a0e0c4c2
Increase the logging level of some debugging messages that seemed to be a
Mauro Brasil <mauro.brasil@tqi.com.br>
parents:
27116
diff
changeset
|
2749 | purple_debug_warning("account", "Network not connected; skipping reconnect\n"); |
| 14758 | 2750 | return; |
| 2751 | } | |
| 2752 | ||
| 15884 | 2753 | for (l = purple_accounts_get_all(); l != NULL; l = l->next) |
|
11348
b8938b189d61
[gaim-migrate @ 13565]
Mark Doliner <markdoliner@pidgin.im>
parents:
11320
diff
changeset
|
2754 | { |
| 15884 | 2755 | account = (PurpleAccount *)l->data; |
| 2756 | if (purple_account_get_enabled(account, purple_core_get_ui()) && | |
| 2757 | (purple_presence_is_online(account->presence))) | |
|
11348
b8938b189d61
[gaim-migrate @ 13565]
Mark Doliner <markdoliner@pidgin.im>
parents:
11320
diff
changeset
|
2758 | { |
| 15884 | 2759 | purple_account_connect(account); |
|
11348
b8938b189d61
[gaim-migrate @ 13565]
Mark Doliner <markdoliner@pidgin.im>
parents:
11320
diff
changeset
|
2760 | } |
|
b8938b189d61
[gaim-migrate @ 13565]
Mark Doliner <markdoliner@pidgin.im>
parents:
11320
diff
changeset
|
2761 | } |
|
b8938b189d61
[gaim-migrate @ 13565]
Mark Doliner <markdoliner@pidgin.im>
parents:
11320
diff
changeset
|
2762 | } |
|
b8938b189d61
[gaim-migrate @ 13565]
Mark Doliner <markdoliner@pidgin.im>
parents:
11320
diff
changeset
|
2763 | |
|
b8938b189d61
[gaim-migrate @ 13565]
Mark Doliner <markdoliner@pidgin.im>
parents:
11320
diff
changeset
|
2764 | void |
| 15884 | 2765 | purple_accounts_set_ui_ops(PurpleAccountUiOps *ops) |
|
7015
bea9111282b3
[gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
2766 | { |
|
bea9111282b3
[gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
2767 | account_ui_ops = ops; |
|
bea9111282b3
[gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
2768 | } |
|
bea9111282b3
[gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
2769 | |
| 15884 | 2770 | PurpleAccountUiOps * |
| 2771 | purple_accounts_get_ui_ops(void) | |
|
7015
bea9111282b3
[gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
2772 | { |
|
bea9111282b3
[gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
2773 | return account_ui_ops; |
|
bea9111282b3
[gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
2774 | } |
|
bea9111282b3
[gaim-migrate @ 7578]
Christian Hammond <chipx86@chipx86.com>
parents:
6695
diff
changeset
|
2775 | |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6368
diff
changeset
|
2776 | void * |
| 15884 | 2777 | purple_accounts_get_handle(void) |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6368
diff
changeset
|
2778 | { |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6368
diff
changeset
|
2779 | static int handle; |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6368
diff
changeset
|
2780 | |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6368
diff
changeset
|
2781 | return &handle; |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6368
diff
changeset
|
2782 | } |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6368
diff
changeset
|
2783 | |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6368
diff
changeset
|
2784 | void |
| 15884 | 2785 | purple_accounts_init(void) |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6368
diff
changeset
|
2786 | { |
| 15884 | 2787 | void *handle = purple_accounts_get_handle(); |
|
21287
c4971408eae8
Make PurpleAccount keep track of the last connection error suffered (or not, if
Will Thompson <resiak@pidgin.im>
parents:
21233
diff
changeset
|
2788 | void *conn_handle = purple_connections_get_handle(); |
| 15884 | 2789 | |
| 2790 | purple_signal_register(handle, "account-connecting", | |
| 2791 | purple_marshal_VOID__POINTER, NULL, 1, | |
| 2792 | purple_value_new(PURPLE_TYPE_SUBTYPE, | |
| 2793 | PURPLE_SUBTYPE_ACCOUNT)); | |
| 2794 | ||
| 2795 | purple_signal_register(handle, "account-disabled", | |
| 2796 | purple_marshal_VOID__POINTER, NULL, 1, | |
| 2797 | purple_value_new(PURPLE_TYPE_SUBTYPE, | |
| 2798 | PURPLE_SUBTYPE_ACCOUNT)); | |
| 2799 | ||
| 2800 | purple_signal_register(handle, "account-enabled", | |
| 2801 | purple_marshal_VOID__POINTER, NULL, 1, | |
| 2802 | purple_value_new(PURPLE_TYPE_SUBTYPE, | |
| 2803 | PURPLE_SUBTYPE_ACCOUNT)); | |
| 2804 | ||
| 2805 | purple_signal_register(handle, "account-setting-info", | |
| 2806 | purple_marshal_VOID__POINTER_POINTER, NULL, 2, | |
| 2807 | purple_value_new(PURPLE_TYPE_SUBTYPE, | |
| 2808 | PURPLE_SUBTYPE_ACCOUNT), | |
| 2809 | purple_value_new(PURPLE_TYPE_STRING)); | |
| 2810 | ||
| 2811 | purple_signal_register(handle, "account-set-info", | |
| 2812 | purple_marshal_VOID__POINTER_POINTER, NULL, 2, | |
| 2813 | purple_value_new(PURPLE_TYPE_SUBTYPE, | |
| 2814 | PURPLE_SUBTYPE_ACCOUNT), | |
| 2815 | purple_value_new(PURPLE_TYPE_STRING)); | |
| 2816 | ||
|
26986
5b66ec752214
Add account-(created|destroying) signals.
Paul Aurich <darkrain42@pidgin.im>
parents:
26871
diff
changeset
|
2817 | purple_signal_register(handle, "account-created", |
|
5b66ec752214
Add account-(created|destroying) signals.
Paul Aurich <darkrain42@pidgin.im>
parents:
26871
diff
changeset
|
2818 | purple_marshal_VOID__POINTER, NULL, 1, |
|
5b66ec752214
Add account-(created|destroying) signals.
Paul Aurich <darkrain42@pidgin.im>
parents:
26871
diff
changeset
|
2819 | purple_value_new(PURPLE_TYPE_SUBTYPE, PURPLE_SUBTYPE_ACCOUNT)); |
|
5b66ec752214
Add account-(created|destroying) signals.
Paul Aurich <darkrain42@pidgin.im>
parents:
26871
diff
changeset
|
2820 | |
|
5b66ec752214
Add account-(created|destroying) signals.
Paul Aurich <darkrain42@pidgin.im>
parents:
26871
diff
changeset
|
2821 | purple_signal_register(handle, "account-destroying", |
|
5b66ec752214
Add account-(created|destroying) signals.
Paul Aurich <darkrain42@pidgin.im>
parents:
26871
diff
changeset
|
2822 | purple_marshal_VOID__POINTER, NULL, 1, |
|
5b66ec752214
Add account-(created|destroying) signals.
Paul Aurich <darkrain42@pidgin.im>
parents:
26871
diff
changeset
|
2823 | purple_value_new(PURPLE_TYPE_SUBTYPE, PURPLE_SUBTYPE_ACCOUNT)); |
|
5b66ec752214
Add account-(created|destroying) signals.
Paul Aurich <darkrain42@pidgin.im>
parents:
26871
diff
changeset
|
2824 | |
| 15884 | 2825 | purple_signal_register(handle, "account-added", |
| 2826 | purple_marshal_VOID__POINTER, NULL, 1, | |
| 2827 | purple_value_new(PURPLE_TYPE_SUBTYPE, PURPLE_SUBTYPE_ACCOUNT)); | |
| 2828 | ||
| 2829 | purple_signal_register(handle, "account-removed", | |
| 2830 | purple_marshal_VOID__POINTER, NULL, 1, | |
| 2831 | purple_value_new(PURPLE_TYPE_SUBTYPE, PURPLE_SUBTYPE_ACCOUNT)); | |
| 2832 | ||
| 2833 | purple_signal_register(handle, "account-status-changed", | |
| 2834 | purple_marshal_VOID__POINTER_POINTER_POINTER, NULL, 3, | |
| 2835 | purple_value_new(PURPLE_TYPE_SUBTYPE, | |
| 2836 | PURPLE_SUBTYPE_ACCOUNT), | |
| 2837 | purple_value_new(PURPLE_TYPE_SUBTYPE, | |
| 2838 | PURPLE_SUBTYPE_STATUS), | |
| 2839 | purple_value_new(PURPLE_TYPE_SUBTYPE, | |
| 2840 | PURPLE_SUBTYPE_STATUS)); | |
| 2841 | ||
|
26871
d62964222795
Add a new signal which is emitted (after the account is connected) if the
Paul Aurich <darkrain42@pidgin.im>
parents:
26761
diff
changeset
|
2842 | purple_signal_register(handle, "account-actions-changed", |
|
d62964222795
Add a new signal which is emitted (after the account is connected) if the
Paul Aurich <darkrain42@pidgin.im>
parents:
26761
diff
changeset
|
2843 | purple_marshal_VOID__POINTER, NULL, 1, |
|
d62964222795
Add a new signal which is emitted (after the account is connected) if the
Paul Aurich <darkrain42@pidgin.im>
parents:
26761
diff
changeset
|
2844 | purple_value_new(PURPLE_TYPE_SUBTYPE, PURPLE_SUBTYPE_ACCOUNT)); |
|
d62964222795
Add a new signal which is emitted (after the account is connected) if the
Paul Aurich <darkrain42@pidgin.im>
parents:
26761
diff
changeset
|
2845 | |
| 15884 | 2846 | purple_signal_register(handle, "account-alias-changed", |
| 2847 | purple_marshal_VOID__POINTER_POINTER, NULL, 2, | |
| 2848 | purple_value_new(PURPLE_TYPE_SUBTYPE, | |
| 2849 | PURPLE_SUBTYPE_ACCOUNT), | |
| 2850 | purple_value_new(PURPLE_TYPE_STRING)); | |
|
20093
04f3c1dcd2cf
applied changes from 5fda75104115d0a95c1e214b6b3ca18c4dc86a0c
Richard Laager <rlaager@pidgin.im>
parents:
19897
diff
changeset
|
2851 | |
|
20421
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
2852 | purple_signal_register(handle, "account-authorization-requested", |
|
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
2853 | purple_marshal_INT__POINTER_POINTER, |
|
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
2854 | purple_value_new(PURPLE_TYPE_INT), 2, |
|
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
2855 | purple_value_new(PURPLE_TYPE_SUBTYPE, |
|
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
2856 | PURPLE_SUBTYPE_ACCOUNT), |
|
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
2857 | purple_value_new(PURPLE_TYPE_STRING)); |
|
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
2858 | |
|
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
2859 | purple_signal_register(handle, "account-authorization-denied", |
|
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
2860 | purple_marshal_VOID__POINTER_POINTER, NULL, 2, |
|
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
2861 | purple_value_new(PURPLE_TYPE_SUBTYPE, |
|
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
2862 | PURPLE_SUBTYPE_ACCOUNT), |
|
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
2863 | purple_value_new(PURPLE_TYPE_STRING)); |
|
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
2864 | |
|
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
2865 | purple_signal_register(handle, "account-authorization-granted", |
|
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
2866 | purple_marshal_VOID__POINTER_POINTER, NULL, 2, |
|
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
2867 | purple_value_new(PURPLE_TYPE_SUBTYPE, |
|
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
2868 | PURPLE_SUBTYPE_ACCOUNT), |
|
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
2869 | purple_value_new(PURPLE_TYPE_STRING)); |
|
e6c82f6c2485
Authorization signals. Modified patch from cockroach. Closes #1061.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
20379
diff
changeset
|
2870 | |
|
21287
c4971408eae8
Make PurpleAccount keep track of the last connection error suffered (or not, if
Will Thompson <resiak@pidgin.im>
parents:
21233
diff
changeset
|
2871 | purple_signal_register(handle, "account-error-changed", |
|
21294
1fe885468da2
Add the old error to the account-error-changed signal.
Will Thompson <resiak@pidgin.im>
parents:
21292
diff
changeset
|
2872 | purple_marshal_VOID__POINTER_POINTER_POINTER, |
|
1fe885468da2
Add the old error to the account-error-changed signal.
Will Thompson <resiak@pidgin.im>
parents:
21292
diff
changeset
|
2873 | NULL, 3, |
|
21287
c4971408eae8
Make PurpleAccount keep track of the last connection error suffered (or not, if
Will Thompson <resiak@pidgin.im>
parents:
21233
diff
changeset
|
2874 | purple_value_new(PURPLE_TYPE_SUBTYPE, |
|
c4971408eae8
Make PurpleAccount keep track of the last connection error suffered (or not, if
Will Thompson <resiak@pidgin.im>
parents:
21233
diff
changeset
|
2875 | PURPLE_SUBTYPE_ACCOUNT), |
|
21294
1fe885468da2
Add the old error to the account-error-changed signal.
Will Thompson <resiak@pidgin.im>
parents:
21292
diff
changeset
|
2876 | purple_value_new(PURPLE_TYPE_POINTER), |
|
21287
c4971408eae8
Make PurpleAccount keep track of the last connection error suffered (or not, if
Will Thompson <resiak@pidgin.im>
parents:
21233
diff
changeset
|
2877 | purple_value_new(PURPLE_TYPE_POINTER)); |
|
c4971408eae8
Make PurpleAccount keep track of the last connection error suffered (or not, if
Will Thompson <resiak@pidgin.im>
parents:
21233
diff
changeset
|
2878 | |
|
c4971408eae8
Make PurpleAccount keep track of the last connection error suffered (or not, if
Will Thompson <resiak@pidgin.im>
parents:
21233
diff
changeset
|
2879 | purple_signal_connect(conn_handle, "signed-on", handle, |
|
c4971408eae8
Make PurpleAccount keep track of the last connection error suffered (or not, if
Will Thompson <resiak@pidgin.im>
parents:
21233
diff
changeset
|
2880 | PURPLE_CALLBACK(signed_on_cb), NULL); |
|
21292
076fbf488504
Connect to connection-error in account.c so that the account error is actually
Will Thompson <resiak@pidgin.im>
parents:
21287
diff
changeset
|
2881 | purple_signal_connect(conn_handle, "connection-error", handle, |
|
076fbf488504
Connect to connection-error in account.c so that the account error is actually
Will Thompson <resiak@pidgin.im>
parents:
21287
diff
changeset
|
2882 | PURPLE_CALLBACK(connection_error_cb), NULL); |
|
21287
c4971408eae8
Make PurpleAccount keep track of the last connection error suffered (or not, if
Will Thompson <resiak@pidgin.im>
parents:
21233
diff
changeset
|
2883 | |
| 10490 | 2884 | load_accounts(); |
| 2885 | ||
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6368
diff
changeset
|
2886 | } |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6368
diff
changeset
|
2887 | |
|
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6368
diff
changeset
|
2888 | void |
| 15884 | 2889 | purple_accounts_uninit(void) |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6368
diff
changeset
|
2890 | { |
|
21287
c4971408eae8
Make PurpleAccount keep track of the last connection error suffered (or not, if
Will Thompson <resiak@pidgin.im>
parents:
21233
diff
changeset
|
2891 | gpointer handle = purple_accounts_get_handle(); |
|
10428
940d15803cad
[gaim-migrate @ 11680]
Mark Doliner <markdoliner@pidgin.im>
parents:
10427
diff
changeset
|
2892 | if (save_timer != 0) |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
2893 | { |
| 15884 | 2894 | purple_timeout_remove(save_timer); |
|
10428
940d15803cad
[gaim-migrate @ 11680]
Mark Doliner <markdoliner@pidgin.im>
parents:
10427
diff
changeset
|
2895 | save_timer = 0; |
|
10427
2ea1412bc75f
[gaim-migrate @ 11679]
Mark Doliner <markdoliner@pidgin.im>
parents:
10426
diff
changeset
|
2896 | sync_accounts(); |
| 8235 | 2897 | } |
| 2898 | ||
|
27613
7025808e298b
Unregister the account signals after destroying accounts.
Paul Aurich <darkrain42@pidgin.im>
parents:
27603
diff
changeset
|
2899 | for (; accounts; accounts = g_list_delete_link(accounts, accounts)) |
|
7025808e298b
Unregister the account signals after destroying accounts.
Paul Aurich <darkrain42@pidgin.im>
parents:
27603
diff
changeset
|
2900 | purple_account_destroy(accounts->data); |
|
7025808e298b
Unregister the account signals after destroying accounts.
Paul Aurich <darkrain42@pidgin.im>
parents:
27603
diff
changeset
|
2901 | |
|
21287
c4971408eae8
Make PurpleAccount keep track of the last connection error suffered (or not, if
Will Thompson <resiak@pidgin.im>
parents:
21233
diff
changeset
|
2902 | purple_signals_disconnect_by_handle(handle); |
|
c4971408eae8
Make PurpleAccount keep track of the last connection error suffered (or not, if
Will Thompson <resiak@pidgin.im>
parents:
21233
diff
changeset
|
2903 | purple_signals_unregister_by_instance(handle); |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6368
diff
changeset
|
2904 | } |