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