Sat, 02 Jan 2021 19:06:28 -0600
Use PurpleCredentialManager instead of the old keyring api.
Testing Done:
Connected with bonjour (no password), irc (optional password, non set), and xmpp (password required, not saved, entered manually, not saved) and verified that all of them connected properly.
Reviewed at https://reviews.imfreedom.org/r/289/
|
33969
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
1 | /* purple |
|
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
2 | * |
|
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
3 | * Purple is the legal property of its developers, whose names are too numerous |
|
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
4 | * to list here. Please refer to the COPYRIGHT file distributed with this |
|
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
5 | * source distribution. |
|
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
6 | * |
|
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
7 | * This program is free software; you can redistribute it and/or modify |
|
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
8 | * it under the terms of the GNU General Public License as published by |
|
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
9 | * the Free Software Foundation; either version 2 of the License, or |
|
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
10 | * (at your option) any later version. |
|
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
11 | * |
|
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
12 | * This program is distributed in the hope that it will be useful, |
|
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
15 | * GNU General Public License for more details. |
|
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
16 | * |
|
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
17 | * You should have received a copy of the GNU General Public License |
|
33978
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
18 | * along with this program ; if not, write to the Free Software |
|
34158
166870f3adf8
keyring.c refactoring - internal structs
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34157
diff
changeset
|
19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
|
33969
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
20 | */ |
|
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
21 | |
|
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
22 | #include <glib.h> |
|
40441
f23c7e772667
Make sure we're not including the gettext macros in header files and deal with the repercussions of that.
Gary Kramlich <grim@reaperworld.com>
parents:
40125
diff
changeset
|
23 | #include <glib/gi18n-lib.h> |
|
f23c7e772667
Make sure we're not including the gettext macros in header files and deal with the repercussions of that.
Gary Kramlich <grim@reaperworld.com>
parents:
40125
diff
changeset
|
24 | |
|
33987
9beebdbf44d6
Fixed many bugs and crashes in the keyring subsystem.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33983
diff
changeset
|
25 | #include <string.h> |
|
33978
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
26 | #include "account.h" |
|
33969
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
27 | #include "keyring.h" |
|
33978
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
28 | #include "signals.h" |
|
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
29 | #include "core.h" |
|
33982
58a0de711782
Added support for the PURPLE_PLUGIN_FLAG_AUTOLOAD flag, corrected a few bugs and crashed. The compatibility plugin is automatically loaded at startup, and works nicely in compatibility mode (read_sync, write_sync, import, export). Also, I played unsuccessfully with makefiles, so i moved the keyring up one directory. I've finally gotten to the point where I run "make && sudo make install" every now and then.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33981
diff
changeset
|
30 | #include "debug.h" |
|
33998
5fcfc69be362
Added support for master password in pidgin's pref interface.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33997
diff
changeset
|
31 | #include "internal.h" |
|
36509
86e882c3cfdf
Refactored libpurple according to the changes
Ankit Vani <a@nevitus.org>
parents:
36449
diff
changeset
|
32 | #include "plugins.h" |
|
33978
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
33 | |
|
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
34 | struct _PurpleKeyring |
|
33969
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
35 | { |
|
34160
8f0843214194
keyring.c refactoring: replace char with gchar
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34159
diff
changeset
|
36 | gchar *name; |
|
8f0843214194
keyring.c refactoring: replace char with gchar
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34159
diff
changeset
|
37 | gchar *id; |
|
33978
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
38 | PurpleKeyringRead read_password; |
|
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
39 | PurpleKeyringSave save_password; |
|
34138
2bda8642afa3
Early cancelling password requests before quitting
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34137
diff
changeset
|
40 | PurpleKeyringCancelRequests cancel_requests; |
|
33978
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
41 | PurpleKeyringClose close_keyring; |
|
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
42 | PurpleKeyringImportPassword import_password; |
|
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
43 | PurpleKeyringExportPassword export_password; |
|
34185
cb2fe6b04447
Initial support for keyring settings
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34170
diff
changeset
|
44 | PurpleKeyringReadSettings read_settings; |
|
cb2fe6b04447
Initial support for keyring settings
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34170
diff
changeset
|
45 | PurpleKeyringApplySettings apply_settings; |
|
34190
b81cb5542862
Fix double close crash
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34188
diff
changeset
|
46 | |
|
b81cb5542862
Fix double close crash
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34188
diff
changeset
|
47 | gboolean is_closing; |
|
b81cb5542862
Fix double close crash
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34188
diff
changeset
|
48 | gboolean is_cancelling; |
|
b81cb5542862
Fix double close crash
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34188
diff
changeset
|
49 | gboolean close_after_cancel; |
|
33969
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
50 | }; |
|
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
51 | |
|
34158
166870f3adf8
keyring.c refactoring - internal structs
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34157
diff
changeset
|
52 | typedef struct |
|
33987
9beebdbf44d6
Fixed many bugs and crashes in the keyring subsystem.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33983
diff
changeset
|
53 | { |
|
34137
d53bf5bde2c0
Fix use-after-free in error reporting
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34136
diff
changeset
|
54 | GError *error; |
|
33987
9beebdbf44d6
Fixed many bugs and crashes in the keyring subsystem.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33983
diff
changeset
|
55 | PurpleKeyringSetInUseCallback cb; |
|
34158
166870f3adf8
keyring.c refactoring - internal structs
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34157
diff
changeset
|
56 | gpointer cb_data; |
|
35350
c4a6a72c6662
Style: fix keyrings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35157
diff
changeset
|
57 | PurpleKeyring *new_kr; |
|
c4a6a72c6662
Style: fix keyrings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35157
diff
changeset
|
58 | PurpleKeyring *old_kr; |
|
34158
166870f3adf8
keyring.c refactoring - internal structs
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34157
diff
changeset
|
59 | |
|
35462
901dfa763f15
Fix some gtk-doc warnings till proxy.c
Ankit Vani <a@nevitus.org>
parents:
35454
diff
changeset
|
60 | /* |
|
34158
166870f3adf8
keyring.c refactoring - internal structs
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34157
diff
changeset
|
61 | * We are done when finished is positive and read_outstanding is zero. |
|
166870f3adf8
keyring.c refactoring - internal structs
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34157
diff
changeset
|
62 | */ |
|
166870f3adf8
keyring.c refactoring - internal structs
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34157
diff
changeset
|
63 | gboolean finished; |
|
33987
9beebdbf44d6
Fixed many bugs and crashes in the keyring subsystem.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33983
diff
changeset
|
64 | int read_outstanding; |
|
34158
166870f3adf8
keyring.c refactoring - internal structs
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34157
diff
changeset
|
65 | |
|
33987
9beebdbf44d6
Fixed many bugs and crashes in the keyring subsystem.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33983
diff
changeset
|
66 | gboolean abort; |
|
9beebdbf44d6
Fixed many bugs and crashes in the keyring subsystem.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33983
diff
changeset
|
67 | gboolean force; |
|
34141
9d90967f2485
Don't close a keyring before dropping all passwords
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34140
diff
changeset
|
68 | gboolean succeeded; |
|
34158
166870f3adf8
keyring.c refactoring - internal structs
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34157
diff
changeset
|
69 | } PurpleKeyringChangeTracker; |
|
33991
0eb45874d73a
Made more calls asynch, enhanced error checking and reporting.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33987
diff
changeset
|
70 | |
|
34141
9d90967f2485
Don't close a keyring before dropping all passwords
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34140
diff
changeset
|
71 | typedef void (*PurpleKeyringDropCallback)(gpointer data); |
|
9d90967f2485
Don't close a keyring before dropping all passwords
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34140
diff
changeset
|
72 | |
|
9d90967f2485
Don't close a keyring before dropping all passwords
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34140
diff
changeset
|
73 | typedef struct |
|
9d90967f2485
Don't close a keyring before dropping all passwords
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34140
diff
changeset
|
74 | { |
|
9d90967f2485
Don't close a keyring before dropping all passwords
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34140
diff
changeset
|
75 | PurpleKeyringDropCallback cb; |
|
9d90967f2485
Don't close a keyring before dropping all passwords
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34140
diff
changeset
|
76 | gpointer cb_data; |
|
34158
166870f3adf8
keyring.c refactoring - internal structs
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34157
diff
changeset
|
77 | |
|
34141
9d90967f2485
Don't close a keyring before dropping all passwords
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34140
diff
changeset
|
78 | gboolean finished; |
|
34158
166870f3adf8
keyring.c refactoring - internal structs
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34157
diff
changeset
|
79 | int drop_outstanding; |
|
34141
9d90967f2485
Don't close a keyring before dropping all passwords
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34140
diff
changeset
|
80 | } PurpleKeyringDropTracker; |
|
9d90967f2485
Don't close a keyring before dropping all passwords
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34140
diff
changeset
|
81 | |
|
34158
166870f3adf8
keyring.c refactoring - internal structs
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34157
diff
changeset
|
82 | typedef struct |
|
166870f3adf8
keyring.c refactoring - internal structs
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34157
diff
changeset
|
83 | { |
|
166870f3adf8
keyring.c refactoring - internal structs
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34157
diff
changeset
|
84 | PurpleKeyringSaveCallback cb; |
|
166870f3adf8
keyring.c refactoring - internal structs
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34157
diff
changeset
|
85 | gpointer cb_data; |
|
166870f3adf8
keyring.c refactoring - internal structs
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34157
diff
changeset
|
86 | } PurpleKeyringSetPasswordData; |
|
166870f3adf8
keyring.c refactoring - internal structs
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34157
diff
changeset
|
87 | |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
88 | typedef struct |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
89 | { |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
90 | gchar *keyring_id; |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
91 | gchar *mode; |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
92 | gchar *data; |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
93 | } PurpleKeyringFailedImport; |
|
34155
567c48f9658c
Refactor the keyring API
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34154
diff
changeset
|
94 | |
|
567c48f9658c
Refactor the keyring API
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34154
diff
changeset
|
95 | static void |
|
34137
d53bf5bde2c0
Fix use-after-free in error reporting
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34136
diff
changeset
|
96 | purple_keyring_change_tracker_free(PurpleKeyringChangeTracker *tracker) |
|
d53bf5bde2c0
Fix use-after-free in error reporting
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34136
diff
changeset
|
97 | { |
|
d53bf5bde2c0
Fix use-after-free in error reporting
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34136
diff
changeset
|
98 | if (tracker->error) |
|
d53bf5bde2c0
Fix use-after-free in error reporting
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34136
diff
changeset
|
99 | g_error_free(tracker->error); |
|
d53bf5bde2c0
Fix use-after-free in error reporting
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34136
diff
changeset
|
100 | g_free(tracker); |
|
d53bf5bde2c0
Fix use-after-free in error reporting
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34136
diff
changeset
|
101 | } |
|
d53bf5bde2c0
Fix use-after-free in error reporting
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34136
diff
changeset
|
102 | |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
103 | static void |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
104 | purple_keyring_failed_import_free(PurpleKeyringFailedImport *import) |
|
33978
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
105 | { |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
106 | g_return_if_fail(import != NULL); |
|
33978
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
107 | |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
108 | g_free(import->keyring_id); |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
109 | g_free(import->mode); |
|
34169
488d3280e151
Replace g_free with purple_str_wipe, correct line breaking
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34168
diff
changeset
|
110 | purple_str_wipe(import->data); |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
111 | g_free(import); |
|
33978
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
112 | } |
|
33969
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
113 | |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
114 | static void |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
115 | purple_keyring_close(PurpleKeyring *keyring); |
|
33978
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
116 | |
|
34162
31427d618b09
keyring.c refactoring: fix naming for purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34161
diff
changeset
|
117 | static void |
|
31427d618b09
keyring.c refactoring: fix naming for purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34161
diff
changeset
|
118 | purple_keyring_drop_passwords(PurpleKeyring *keyring, |
|
31427d618b09
keyring.c refactoring: fix naming for purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34161
diff
changeset
|
119 | PurpleKeyringDropCallback cb, gpointer data); |
|
31427d618b09
keyring.c refactoring: fix naming for purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34161
diff
changeset
|
120 | |
|
34160
8f0843214194
keyring.c refactoring: replace char with gchar
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34159
diff
changeset
|
121 | /* A list of available keyrings */ |
|
34161
ab354da721d5
keyring.c refactoring: prefs watching
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34160
diff
changeset
|
122 | static GList *purple_keyring_keyrings = NULL; |
|
34160
8f0843214194
keyring.c refactoring: replace char with gchar
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34159
diff
changeset
|
123 | |
|
8f0843214194
keyring.c refactoring: replace char with gchar
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34159
diff
changeset
|
124 | /* Keyring being used. */ |
|
34161
ab354da721d5
keyring.c refactoring: prefs watching
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34160
diff
changeset
|
125 | static PurpleKeyring *purple_keyring_inuse = NULL; |
|
34160
8f0843214194
keyring.c refactoring: replace char with gchar
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34159
diff
changeset
|
126 | |
|
8f0843214194
keyring.c refactoring: replace char with gchar
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34159
diff
changeset
|
127 | /* Keyring id marked to use (may not be loadable). */ |
|
34161
ab354da721d5
keyring.c refactoring: prefs watching
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34160
diff
changeset
|
128 | static gchar *purple_keyring_to_use = NULL; |
|
34160
8f0843214194
keyring.c refactoring: replace char with gchar
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34159
diff
changeset
|
129 | |
|
34161
ab354da721d5
keyring.c refactoring: prefs watching
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34160
diff
changeset
|
130 | static guint purple_keyring_pref_cbid = 0; |
|
34116
825c98f8c7f6
Get rid of PURPLE_PLUGIN_FLAG_AUTOLOAD
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34110
diff
changeset
|
131 | static GList *purple_keyring_loaded_plugins = NULL; |
|
34139
37d7d0e22484
Revert existing password migration at exit, allow cancelling kwallet requests
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34138
diff
changeset
|
132 | static PurpleKeyringChangeTracker *current_change_tracker = NULL; |
|
34140
2fd6b1439c56
Don't allow sensitive operations while quitting or migrating passwords
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34139
diff
changeset
|
133 | static gboolean purple_keyring_is_quitting = FALSE; |
|
34157
c67266e97d75
Don't drop exported passwords, when keyring plugin is not loadable
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34155
diff
changeset
|
134 | static GHashTable *purple_keyring_failed_imports = NULL; |
|
c67266e97d75
Don't drop exported passwords, when keyring plugin is not loadable
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34155
diff
changeset
|
135 | |
|
34167
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
136 | static const gchar * |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
137 | purple_keyring_print_account(PurpleAccount *account) |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
138 | { |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
139 | static gchar print_buff[100]; |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
140 | |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
141 | if (account == NULL) { |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
142 | g_snprintf(print_buff, 100, "(null)"); |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
143 | return print_buff; |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
144 | } |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
145 | |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
146 | g_snprintf(print_buff, 100, "%s:%s", |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
147 | purple_account_get_protocol_id(account), |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
148 | purple_account_get_username(account)); |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
149 | return print_buff; |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
150 | } |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
151 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
152 | /**************************************************************************/ |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
153 | /* Setting used keyrings */ |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
154 | /**************************************************************************/ |
|
34157
c67266e97d75
Don't drop exported passwords, when keyring plugin is not loadable
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34155
diff
changeset
|
155 | |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
156 | PurpleKeyring * |
|
34160
8f0843214194
keyring.c refactoring: replace char with gchar
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34159
diff
changeset
|
157 | purple_keyring_find_keyring_by_id(const gchar *id) |
|
34157
c67266e97d75
Don't drop exported passwords, when keyring plugin is not loadable
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34155
diff
changeset
|
158 | { |
|
34161
ab354da721d5
keyring.c refactoring: prefs watching
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34160
diff
changeset
|
159 | GList *it; |
|
34157
c67266e97d75
Don't drop exported passwords, when keyring plugin is not loadable
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34155
diff
changeset
|
160 | |
|
34161
ab354da721d5
keyring.c refactoring: prefs watching
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34160
diff
changeset
|
161 | for (it = purple_keyring_keyrings; it != NULL; it = it->next) { |
|
ab354da721d5
keyring.c refactoring: prefs watching
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34160
diff
changeset
|
162 | PurpleKeyring *keyring = it->data; |
|
ab354da721d5
keyring.c refactoring: prefs watching
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34160
diff
changeset
|
163 | const gchar *curr_id = purple_keyring_get_id(keyring); |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
164 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
165 | if (g_strcmp0(id, curr_id) == 0) |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
166 | return keyring; |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
167 | } |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
168 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
169 | return NULL; |
|
34157
c67266e97d75
Don't drop exported passwords, when keyring plugin is not loadable
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34155
diff
changeset
|
170 | } |
|
33978
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
171 | |
|
34033
910f2ed3988b
Remove trailing whitespace.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
34032
diff
changeset
|
172 | static void |
|
34161
ab354da721d5
keyring.c refactoring: prefs watching
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34160
diff
changeset
|
173 | purple_keyring_pref_callback(const gchar *pref, PurplePrefType type, |
|
ab354da721d5
keyring.c refactoring: prefs watching
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34160
diff
changeset
|
174 | gconstpointer id, gpointer data) |
|
34032
2eeafc43c7f2
Rearrange code so we can drop the prototypes. Most of it was already
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
34031
diff
changeset
|
175 | { |
|
34161
ab354da721d5
keyring.c refactoring: prefs watching
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34160
diff
changeset
|
176 | PurpleKeyring *new_keyring; |
|
34032
2eeafc43c7f2
Rearrange code so we can drop the prototypes. Most of it was already
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
34031
diff
changeset
|
177 | |
|
2eeafc43c7f2
Rearrange code so we can drop the prototypes. Most of it was already
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
34031
diff
changeset
|
178 | g_return_if_fail(g_strcmp0(pref, "/purple/keyring/active") == 0); |
|
2eeafc43c7f2
Rearrange code so we can drop the prototypes. Most of it was already
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
34031
diff
changeset
|
179 | g_return_if_fail(type == PURPLE_PREF_STRING); |
|
2eeafc43c7f2
Rearrange code so we can drop the prototypes. Most of it was already
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
34031
diff
changeset
|
180 | g_return_if_fail(id != NULL); |
|
2eeafc43c7f2
Rearrange code so we can drop the prototypes. Most of it was already
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
34031
diff
changeset
|
181 | |
|
34161
ab354da721d5
keyring.c refactoring: prefs watching
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34160
diff
changeset
|
182 | new_keyring = purple_keyring_find_keyring_by_id(id); |
|
ab354da721d5
keyring.c refactoring: prefs watching
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34160
diff
changeset
|
183 | g_return_if_fail(new_keyring != NULL); |
|
ab354da721d5
keyring.c refactoring: prefs watching
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34160
diff
changeset
|
184 | |
|
ab354da721d5
keyring.c refactoring: prefs watching
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34160
diff
changeset
|
185 | purple_keyring_set_inuse(new_keyring, FALSE, NULL, NULL); |
|
ab354da721d5
keyring.c refactoring: prefs watching
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34160
diff
changeset
|
186 | } |
|
ab354da721d5
keyring.c refactoring: prefs watching
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34160
diff
changeset
|
187 | |
|
ab354da721d5
keyring.c refactoring: prefs watching
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34160
diff
changeset
|
188 | static void |
|
ab354da721d5
keyring.c refactoring: prefs watching
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34160
diff
changeset
|
189 | purple_keyring_pref_connect(void) |
|
ab354da721d5
keyring.c refactoring: prefs watching
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34160
diff
changeset
|
190 | { |
|
ab354da721d5
keyring.c refactoring: prefs watching
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34160
diff
changeset
|
191 | g_return_if_fail(purple_keyring_pref_cbid == 0); |
|
34032
2eeafc43c7f2
Rearrange code so we can drop the prototypes. Most of it was already
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
34031
diff
changeset
|
192 | |
|
34161
ab354da721d5
keyring.c refactoring: prefs watching
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34160
diff
changeset
|
193 | purple_keyring_pref_cbid = purple_prefs_connect_callback(NULL, |
|
ab354da721d5
keyring.c refactoring: prefs watching
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34160
diff
changeset
|
194 | "/purple/keyring/active", purple_keyring_pref_callback, NULL); |
|
ab354da721d5
keyring.c refactoring: prefs watching
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34160
diff
changeset
|
195 | } |
|
ab354da721d5
keyring.c refactoring: prefs watching
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34160
diff
changeset
|
196 | |
|
ab354da721d5
keyring.c refactoring: prefs watching
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34160
diff
changeset
|
197 | static void |
|
ab354da721d5
keyring.c refactoring: prefs watching
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34160
diff
changeset
|
198 | purple_keyring_pref_disconnect(void) |
|
ab354da721d5
keyring.c refactoring: prefs watching
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34160
diff
changeset
|
199 | { |
|
ab354da721d5
keyring.c refactoring: prefs watching
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34160
diff
changeset
|
200 | g_return_if_fail(purple_keyring_pref_cbid != 0); |
|
ab354da721d5
keyring.c refactoring: prefs watching
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34160
diff
changeset
|
201 | |
|
ab354da721d5
keyring.c refactoring: prefs watching
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34160
diff
changeset
|
202 | purple_prefs_disconnect_callback(purple_keyring_pref_cbid); |
|
ab354da721d5
keyring.c refactoring: prefs watching
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34160
diff
changeset
|
203 | purple_keyring_pref_cbid = 0; |
|
34032
2eeafc43c7f2
Rearrange code so we can drop the prototypes. Most of it was already
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
34031
diff
changeset
|
204 | } |
|
2eeafc43c7f2
Rearrange code so we can drop the prototypes. Most of it was already
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
34031
diff
changeset
|
205 | |
|
34155
567c48f9658c
Refactor the keyring API
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34154
diff
changeset
|
206 | PurpleKeyring * |
|
34034
f508fa47f2ac
Reformat many things.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
34033
diff
changeset
|
207 | purple_keyring_get_inuse(void) |
|
33969
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
208 | { |
|
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
209 | return purple_keyring_inuse; |
|
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
210 | } |
|
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
211 | |
|
33978
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
212 | static void |
|
34141
9d90967f2485
Don't close a keyring before dropping all passwords
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34140
diff
changeset
|
213 | purple_keyring_set_inuse_drop_cb(gpointer _tracker) |
|
9d90967f2485
Don't close a keyring before dropping all passwords
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34140
diff
changeset
|
214 | { |
|
9d90967f2485
Don't close a keyring before dropping all passwords
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34140
diff
changeset
|
215 | PurpleKeyringChangeTracker *tracker = _tracker; |
|
9d90967f2485
Don't close a keyring before dropping all passwords
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34140
diff
changeset
|
216 | |
|
9d90967f2485
Don't close a keyring before dropping all passwords
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34140
diff
changeset
|
217 | g_return_if_fail(tracker != NULL); |
|
33978
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
218 | |
|
34141
9d90967f2485
Don't close a keyring before dropping all passwords
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34140
diff
changeset
|
219 | if (tracker->succeeded) { |
|
35350
c4a6a72c6662
Style: fix keyrings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35157
diff
changeset
|
220 | purple_keyring_close(tracker->old_kr); |
|
34141
9d90967f2485
Don't close a keyring before dropping all passwords
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34140
diff
changeset
|
221 | |
|
9d90967f2485
Don't close a keyring before dropping all passwords
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34140
diff
changeset
|
222 | purple_debug_info("keyring", "Successfully changed keyring.\n"); |
|
9d90967f2485
Don't close a keyring before dropping all passwords
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34140
diff
changeset
|
223 | |
|
35350
c4a6a72c6662
Style: fix keyrings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35157
diff
changeset
|
224 | purple_keyring_inuse = tracker->new_kr; |
|
34141
9d90967f2485
Don't close a keyring before dropping all passwords
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34140
diff
changeset
|
225 | current_change_tracker = NULL; |
|
9d90967f2485
Don't close a keyring before dropping all passwords
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34140
diff
changeset
|
226 | |
|
9d90967f2485
Don't close a keyring before dropping all passwords
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34140
diff
changeset
|
227 | if (tracker->cb != NULL) |
|
34163
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
228 | tracker->cb(NULL, tracker->cb_data); |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
229 | purple_keyring_change_tracker_free(tracker); |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
230 | return; |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
231 | } |
|
34141
9d90967f2485
Don't close a keyring before dropping all passwords
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34140
diff
changeset
|
232 | |
|
34163
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
233 | purple_debug_error("keyring", "Failed to change keyring, aborting.\n"); |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
234 | |
|
35350
c4a6a72c6662
Style: fix keyrings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35157
diff
changeset
|
235 | purple_keyring_close(tracker->new_kr); |
|
34155
567c48f9658c
Refactor the keyring API
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34154
diff
changeset
|
236 | |
|
34163
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
237 | purple_keyring_pref_disconnect(); |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
238 | purple_prefs_set_string("/purple/keyring/active", |
|
35350
c4a6a72c6662
Style: fix keyrings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35157
diff
changeset
|
239 | purple_keyring_get_id(tracker->old_kr)); |
|
34163
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
240 | purple_keyring_pref_connect(); |
|
34141
9d90967f2485
Don't close a keyring before dropping all passwords
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34140
diff
changeset
|
241 | |
|
34163
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
242 | current_change_tracker = NULL; |
|
34141
9d90967f2485
Don't close a keyring before dropping all passwords
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34140
diff
changeset
|
243 | |
|
34163
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
244 | if (tracker->error == NULL) { |
|
39921
a9c92a82f4c8
Don't pass literals to g_set_error / g_error_new.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39892
diff
changeset
|
245 | tracker->error = g_error_new_literal( |
|
a9c92a82f4c8
Don't pass literals to g_set_error / g_error_new.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39892
diff
changeset
|
246 | PURPLE_KEYRING_ERROR, PURPLE_KEYRING_ERROR_UNKNOWN, |
|
a9c92a82f4c8
Don't pass literals to g_set_error / g_error_new.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39892
diff
changeset
|
247 | _("An unknown error has occured.")); |
|
34141
9d90967f2485
Don't close a keyring before dropping all passwords
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34140
diff
changeset
|
248 | } |
|
9d90967f2485
Don't close a keyring before dropping all passwords
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34140
diff
changeset
|
249 | |
|
34163
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
250 | if (tracker->cb != NULL) |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
251 | tracker->cb(tracker->error, tracker->cb_data); |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
252 | |
|
34141
9d90967f2485
Don't close a keyring before dropping all passwords
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34140
diff
changeset
|
253 | purple_keyring_change_tracker_free(tracker); |
|
33978
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
254 | } |
|
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
255 | |
|
33981
8c8fe2e5bbcd
dded import/export in account.c, new version of internalkeyring.c, and added stuff to makefiles.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33978
diff
changeset
|
256 | static void |
|
34163
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
257 | purple_keyring_set_inuse_save_cb(PurpleAccount *account, GError *error, |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
258 | gpointer _tracker) |
|
33969
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
259 | { |
|
34163
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
260 | PurpleKeyringChangeTracker *tracker = _tracker; |
|
33973
b193c0e9044b
Fixed problem in async purple_peyring_set_inuse()
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33972
diff
changeset
|
261 | |
|
34163
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
262 | g_return_if_fail(account != NULL); |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
263 | g_return_if_fail(tracker != NULL); |
|
33969
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
264 | |
|
33978
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
265 | tracker->read_outstanding--; |
|
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
266 | |
|
35157
6d2ba273a5b2
Keyring: fix clang warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34955
diff
changeset
|
267 | if (error == NULL) { |
|
6d2ba273a5b2
Keyring: fix clang warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34955
diff
changeset
|
268 | /* no error */ |
|
6d2ba273a5b2
Keyring: fix clang warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34955
diff
changeset
|
269 | } else if (g_error_matches(error, PURPLE_KEYRING_ERROR, |
|
35362
a6223370667b
Style: fix braces for http, keyring
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35350
diff
changeset
|
270 | PURPLE_KEYRING_ERROR_NOPASSWORD)) |
|
a6223370667b
Style: fix braces for http, keyring
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35350
diff
changeset
|
271 | { |
|
34163
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
272 | if (purple_debug_is_verbose()) { |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
273 | purple_debug_misc("keyring", "No password found while " |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
274 | "changing keyring for account %s: %s.\n", |
|
34167
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
275 | purple_keyring_print_account(account), |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
276 | error->message); |
|
33970
4b6a0141a242
Fixed syntax and types error. keyring.c and keyring.h will now compile, but will issue warnings with -Wall
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33969
diff
changeset
|
277 | } |
|
34164
66d56d8d495f
keyring.c refactoring: fix compilation errors (how could I miss that?)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34163
diff
changeset
|
278 | } else if (g_error_matches(error, PURPLE_KEYRING_ERROR, |
|
35362
a6223370667b
Style: fix braces for http, keyring
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35350
diff
changeset
|
279 | PURPLE_KEYRING_ERROR_ACCESSDENIED)) |
|
a6223370667b
Style: fix braces for http, keyring
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35350
diff
changeset
|
280 | { |
|
34163
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
281 | purple_debug_info("keyring", "Access denied while changing " |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
282 | "keyring for account %s: %s.\n", |
|
34167
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
283 | purple_keyring_print_account(account), error->message); |
|
34163
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
284 | tracker->abort = TRUE; |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
285 | if (tracker->error != NULL) |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
286 | g_error_free(tracker->error); |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
287 | tracker->error = g_error_copy(error); |
|
34164
66d56d8d495f
keyring.c refactoring: fix compilation errors (how could I miss that?)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34163
diff
changeset
|
288 | } else if (g_error_matches(error, PURPLE_KEYRING_ERROR, |
|
35362
a6223370667b
Style: fix braces for http, keyring
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35350
diff
changeset
|
289 | PURPLE_KEYRING_ERROR_CANCELLED)) |
|
a6223370667b
Style: fix braces for http, keyring
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35350
diff
changeset
|
290 | { |
|
34163
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
291 | purple_debug_info("keyring", "Operation cancelled while " |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
292 | "changing keyring for account %s: %s.\n", |
|
34167
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
293 | purple_keyring_print_account(account), error->message); |
|
34163
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
294 | tracker->abort = TRUE; |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
295 | if (tracker->error == NULL) |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
296 | tracker->error = g_error_copy(error); |
|
34164
66d56d8d495f
keyring.c refactoring: fix compilation errors (how could I miss that?)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34163
diff
changeset
|
297 | } else if (g_error_matches(error, PURPLE_KEYRING_ERROR, |
|
35362
a6223370667b
Style: fix braces for http, keyring
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35350
diff
changeset
|
298 | PURPLE_KEYRING_ERROR_BACKENDFAIL)) |
|
a6223370667b
Style: fix braces for http, keyring
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35350
diff
changeset
|
299 | { |
|
34163
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
300 | purple_debug_error("keyring", "Failed to communicate with " |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
301 | "backend while changing keyring for account %s: %s. " |
|
34167
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
302 | "Aborting changes.\n", |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
303 | purple_keyring_print_account(account), error->message); |
|
34163
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
304 | tracker->abort = TRUE; |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
305 | if (tracker->error != NULL) |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
306 | g_error_free(tracker->error); |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
307 | tracker->error = g_error_copy(error); |
|
35157
6d2ba273a5b2
Keyring: fix clang warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34955
diff
changeset
|
308 | } else { |
|
34163
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
309 | purple_debug_error("keyring", "Unknown error while changing " |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
310 | "keyring for account %s: %s. Aborting changes.\n", |
|
34167
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
311 | purple_keyring_print_account(account), error->message); |
|
34163
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
312 | tracker->abort = TRUE; |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
313 | if (tracker->error == NULL) |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
314 | tracker->error = g_error_copy(error); |
|
33970
4b6a0141a242
Fixed syntax and types error. keyring.c and keyring.h will now compile, but will issue warnings with -Wall
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33969
diff
changeset
|
315 | } |
|
34034
f508fa47f2ac
Reformat many things.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
34033
diff
changeset
|
316 | |
|
34165
cdd4b0dfe92b
keyring.c refactoring: use signal instead of hack depending on implementation
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34164
diff
changeset
|
317 | purple_signal_emit(purple_keyring_get_handle(), "password-migration", |
|
cdd4b0dfe92b
keyring.c refactoring: use signal instead of hack depending on implementation
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34164
diff
changeset
|
318 | account); |
|
34141
9d90967f2485
Don't close a keyring before dropping all passwords
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34140
diff
changeset
|
319 | |
|
34163
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
320 | if (!tracker->finished || tracker->read_outstanding > 0) |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
321 | return; |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
322 | |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
323 | /* This was the last one. */ |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
324 | if (tracker->abort && !tracker->force) { |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
325 | tracker->succeeded = FALSE; |
|
35350
c4a6a72c6662
Style: fix keyrings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35157
diff
changeset
|
326 | purple_keyring_drop_passwords(tracker->new_kr, |
|
34163
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
327 | purple_keyring_set_inuse_drop_cb, tracker); |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
328 | } else { |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
329 | tracker->succeeded = TRUE; |
|
35350
c4a6a72c6662
Style: fix keyrings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35157
diff
changeset
|
330 | purple_keyring_drop_passwords(tracker->old_kr, |
|
34163
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
331 | purple_keyring_set_inuse_drop_cb, tracker); |
|
34141
9d90967f2485
Don't close a keyring before dropping all passwords
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34140
diff
changeset
|
332 | } |
|
33970
4b6a0141a242
Fixed syntax and types error. keyring.c and keyring.h will now compile, but will issue warnings with -Wall
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33969
diff
changeset
|
333 | } |
|
33969
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
334 | |
|
33981
8c8fe2e5bbcd
dded import/export in account.c, new version of internalkeyring.c, and added stuff to makefiles.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33978
diff
changeset
|
335 | static void |
|
34163
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
336 | purple_keyring_set_inuse_read_cb(PurpleAccount *account, const gchar *password, |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
337 | GError *error, gpointer _tracker) |
|
33970
4b6a0141a242
Fixed syntax and types error. keyring.c and keyring.h will now compile, but will issue warnings with -Wall
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33969
diff
changeset
|
338 | { |
|
34163
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
339 | PurpleKeyringChangeTracker *tracker = _tracker; |
|
34153
d90e86be44f7
Fix master password branch for win32
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34146
diff
changeset
|
340 | PurpleKeyringSave save_cb; |
|
33973
b193c0e9044b
Fixed problem in async purple_peyring_set_inuse()
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33972
diff
changeset
|
341 | |
|
34163
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
342 | g_return_if_fail(account != NULL); |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
343 | g_return_if_fail(tracker != NULL); |
|
33973
b193c0e9044b
Fixed problem in async purple_peyring_set_inuse()
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33972
diff
changeset
|
344 | |
|
34136
e9722a935271
Re-implemented GNOME Keyring plugin
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34134
diff
changeset
|
345 | if (tracker->abort) { |
|
34164
66d56d8d495f
keyring.c refactoring: fix compilation errors (how could I miss that?)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34163
diff
changeset
|
346 | purple_keyring_set_inuse_save_cb(account, NULL, tracker); |
|
34136
e9722a935271
Re-implemented GNOME Keyring plugin
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34134
diff
changeset
|
347 | return; |
|
e9722a935271
Re-implemented GNOME Keyring plugin
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34134
diff
changeset
|
348 | } |
|
33978
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
349 | |
|
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
350 | if (error != NULL) { |
|
34164
66d56d8d495f
keyring.c refactoring: fix compilation errors (how could I miss that?)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34163
diff
changeset
|
351 | if (tracker->force == TRUE || g_error_matches(error, |
|
34163
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
352 | PURPLE_KEYRING_ERROR, |
|
35362
a6223370667b
Style: fix braces for http, keyring
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35350
diff
changeset
|
353 | PURPLE_KEYRING_ERROR_NOPASSWORD)) |
|
a6223370667b
Style: fix braces for http, keyring
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35350
diff
changeset
|
354 | { |
|
34163
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
355 | /* Don't save password, and ignore it. */ |
|
33978
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
356 | } else { |
|
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
357 | tracker->abort = TRUE; |
|
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
358 | } |
|
34164
66d56d8d495f
keyring.c refactoring: fix compilation errors (how could I miss that?)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34163
diff
changeset
|
359 | purple_keyring_set_inuse_save_cb(account, error, tracker); |
|
34163
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
360 | return; |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
361 | } |
|
33978
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
362 | |
|
35350
c4a6a72c6662
Style: fix keyrings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35157
diff
changeset
|
363 | save_cb = purple_keyring_get_save_password(tracker->new_kr); |
|
34163
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
364 | g_assert(save_cb != NULL); |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
365 | |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
366 | save_cb(account, password, purple_keyring_set_inuse_save_cb, tracker); |
|
33969
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
367 | } |
|
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
368 | |
|
33978
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
369 | void |
|
34163
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
370 | purple_keyring_set_inuse(PurpleKeyring *newkeyring, gboolean force, |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
371 | PurpleKeyringSetInUseCallback cb, gpointer data) |
|
33969
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
372 | { |
|
34155
567c48f9658c
Refactor the keyring API
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34154
diff
changeset
|
373 | PurpleKeyring *oldkeyring; |
|
34034
f508fa47f2ac
Reformat many things.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
34033
diff
changeset
|
374 | PurpleKeyringChangeTracker *tracker; |
|
34163
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
375 | GList *it; |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
376 | PurpleKeyringRead read_cb; |
|
34131
e56d3dd7b0e4
Track migrating passwords in prefs window
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34129
diff
changeset
|
377 | |
|
34139
37d7d0e22484
Revert existing password migration at exit, allow cancelling kwallet requests
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34138
diff
changeset
|
378 | if (current_change_tracker != NULL) { |
|
34132
ecbcce03ecbc
Don't let two concurrent password migrations being run
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34131
diff
changeset
|
379 | GError *error; |
|
ecbcce03ecbc
Don't let two concurrent password migrations being run
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34131
diff
changeset
|
380 | purple_debug_error("keyring", "There is password migration " |
|
ecbcce03ecbc
Don't let two concurrent password migrations being run
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34131
diff
changeset
|
381 | "session already running.\n"); |
|
ecbcce03ecbc
Don't let two concurrent password migrations being run
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34131
diff
changeset
|
382 | if (cb == NULL) |
|
ecbcce03ecbc
Don't let two concurrent password migrations being run
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34131
diff
changeset
|
383 | return; |
|
39921
a9c92a82f4c8
Don't pass literals to g_set_error / g_error_new.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39892
diff
changeset
|
384 | error = g_error_new_literal( |
|
a9c92a82f4c8
Don't pass literals to g_set_error / g_error_new.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39892
diff
changeset
|
385 | PURPLE_KEYRING_ERROR, PURPLE_KEYRING_ERROR_INTERNAL, |
|
a9c92a82f4c8
Don't pass literals to g_set_error / g_error_new.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39892
diff
changeset
|
386 | _("There is a password migration session already " |
|
a9c92a82f4c8
Don't pass literals to g_set_error / g_error_new.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39892
diff
changeset
|
387 | "running.")); |
|
34163
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
388 | cb(error, data); |
|
34132
ecbcce03ecbc
Don't let two concurrent password migrations being run
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34131
diff
changeset
|
389 | g_error_free(error); |
|
ecbcce03ecbc
Don't let two concurrent password migrations being run
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34131
diff
changeset
|
390 | return; |
|
ecbcce03ecbc
Don't let two concurrent password migrations being run
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34131
diff
changeset
|
391 | } |
|
ecbcce03ecbc
Don't let two concurrent password migrations being run
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34131
diff
changeset
|
392 | |
|
34163
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
393 | oldkeyring = purple_keyring_get_inuse(); |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
394 | |
|
34131
e56d3dd7b0e4
Track migrating passwords in prefs window
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34129
diff
changeset
|
395 | if (oldkeyring == newkeyring) { |
|
34145
fa72f1e5cd77
Some polishing on files modified on this branch (mostly formatting)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34143
diff
changeset
|
396 | if (purple_debug_is_verbose()) { |
|
fa72f1e5cd77
Some polishing on files modified on this branch (mostly formatting)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34143
diff
changeset
|
397 | purple_debug_misc("keyring", |
|
fa72f1e5cd77
Some polishing on files modified on this branch (mostly formatting)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34143
diff
changeset
|
398 | "Old and new keyring are the same: %s.\n", |
|
fa72f1e5cd77
Some polishing on files modified on this branch (mostly formatting)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34143
diff
changeset
|
399 | (newkeyring != NULL) ? |
|
fa72f1e5cd77
Some polishing on files modified on this branch (mostly formatting)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34143
diff
changeset
|
400 | newkeyring->id : "(null)"); |
|
fa72f1e5cd77
Some polishing on files modified on this branch (mostly formatting)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34143
diff
changeset
|
401 | } |
|
34131
e56d3dd7b0e4
Track migrating passwords in prefs window
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34129
diff
changeset
|
402 | if (cb != NULL) |
|
34163
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
403 | cb(NULL, data); |
|
34131
e56d3dd7b0e4
Track migrating passwords in prefs window
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34129
diff
changeset
|
404 | return; |
|
e56d3dd7b0e4
Track migrating passwords in prefs window
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34129
diff
changeset
|
405 | } |
|
e56d3dd7b0e4
Track migrating passwords in prefs window
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34129
diff
changeset
|
406 | |
|
34127
51c1bce7f52f
Tidying debug messages, signals
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34126
diff
changeset
|
407 | purple_debug_info("keyring", "Attempting to set new keyring: %s.\n", |
|
51c1bce7f52f
Tidying debug messages, signals
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34126
diff
changeset
|
408 | (newkeyring != NULL) ? newkeyring->id : "(null)"); |
|
33982
58a0de711782
Added support for the PURPLE_PLUGIN_FLAG_AUTOLOAD flag, corrected a few bugs and crashed. The compatibility plugin is automatically loaded at startup, and works nicely in compatibility mode (read_sync, write_sync, import, export). Also, I played unsuccessfully with makefiles, so i moved the keyring up one directory. I've finally gotten to the point where I run "make && sudo make install" every now and then.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33981
diff
changeset
|
409 | |
|
34163
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
410 | if (oldkeyring == NULL) { /* No keyring was set before. */ |
|
34127
51c1bce7f52f
Tidying debug messages, signals
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34126
diff
changeset
|
411 | if (purple_debug_is_verbose()) { |
|
39892
4fb59abd727e
Fix some static analysis warnings.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39834
diff
changeset
|
412 | purple_debug_misc("keyring", |
|
4fb59abd727e
Fix some static analysis warnings.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39834
diff
changeset
|
413 | "Setting keyring for the first time: %s.\n", |
|
4fb59abd727e
Fix some static analysis warnings.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39834
diff
changeset
|
414 | (newkeyring != NULL) ? newkeyring->id : "(null)"); |
|
34127
51c1bce7f52f
Tidying debug messages, signals
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34126
diff
changeset
|
415 | } |
|
51c1bce7f52f
Tidying debug messages, signals
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34126
diff
changeset
|
416 | |
|
33978
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
417 | purple_keyring_inuse = newkeyring; |
|
34139
37d7d0e22484
Revert existing password migration at exit, allow cancelling kwallet requests
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34138
diff
changeset
|
418 | g_assert(current_change_tracker == NULL); |
|
33978
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
419 | if (cb != NULL) |
|
34163
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
420 | cb(NULL, data); |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
421 | return; |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
422 | } |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
423 | |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
424 | /* Starting a migration. */ |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
425 | |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
426 | read_cb = purple_keyring_get_read_password(oldkeyring); |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
427 | g_assert(read_cb != NULL); |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
428 | |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
429 | purple_debug_misc("keyring", "Starting migration from: %s.\n", |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
430 | oldkeyring->id); |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
431 | |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
432 | tracker = g_new0(PurpleKeyringChangeTracker, 1); |
|
34164
66d56d8d495f
keyring.c refactoring: fix compilation errors (how could I miss that?)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34163
diff
changeset
|
433 | current_change_tracker = tracker; |
|
34163
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
434 | |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
435 | tracker->cb = cb; |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
436 | tracker->cb_data = data; |
|
35350
c4a6a72c6662
Style: fix keyrings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35157
diff
changeset
|
437 | tracker->new_kr = newkeyring; |
|
c4a6a72c6662
Style: fix keyrings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35157
diff
changeset
|
438 | tracker->old_kr = oldkeyring; |
|
34163
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
439 | tracker->force = force; |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
440 | |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
441 | for (it = purple_accounts_get_all(); it != NULL; it = it->next) { |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
442 | if (tracker->abort) { |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
443 | tracker->finished = TRUE; |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
444 | break; |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
445 | } |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
446 | tracker->read_outstanding++; |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
447 | |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
448 | if (it->next == NULL) |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
449 | tracker->finished = TRUE; |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
450 | |
|
3dfcc838b66b
keyring.c refactoring: purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34162
diff
changeset
|
451 | read_cb(it->data, purple_keyring_set_inuse_read_cb, tracker); |
|
33969
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
452 | } |
|
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
453 | } |
|
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
454 | |
|
34033
910f2ed3988b
Remove trailing whitespace.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
34032
diff
changeset
|
455 | void |
|
34034
f508fa47f2ac
Reformat many things.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
34033
diff
changeset
|
456 | purple_keyring_register(PurpleKeyring *keyring) |
|
33969
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
457 | { |
|
34160
8f0843214194
keyring.c refactoring: replace char with gchar
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34159
diff
changeset
|
458 | const gchar *keyring_id; |
|
33978
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
459 | |
|
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
460 | g_return_if_fail(keyring != NULL); |
|
34033
910f2ed3988b
Remove trailing whitespace.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
34032
diff
changeset
|
461 | |
|
33983
317cd0a252c2
Fixed a bunch of bugs/errors, worked on making calls async, on configuration UI, and on Makefiles.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33982
diff
changeset
|
462 | keyring_id = purple_keyring_get_id(keyring); |
|
33978
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
463 | |
|
34166
8be287b0d6be
keyring.c refactoring: registering, unregistering
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34165
diff
changeset
|
464 | purple_debug_info("keyring", "Registering keyring: %s\n", |
|
8be287b0d6be
keyring.c refactoring: registering, unregistering
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34165
diff
changeset
|
465 | keyring_id ? keyring_id : "(null)"); |
|
33969
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
466 | |
|
34142
544f05bc883d
Don't allow registering invalid keyring
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34141
diff
changeset
|
467 | if (purple_keyring_get_id(keyring) == NULL || |
|
544f05bc883d
Don't allow registering invalid keyring
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34141
diff
changeset
|
468 | purple_keyring_get_name(keyring) == NULL || |
|
544f05bc883d
Don't allow registering invalid keyring
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34141
diff
changeset
|
469 | purple_keyring_get_read_password(keyring) == NULL || |
|
35362
a6223370667b
Style: fix braces for http, keyring
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35350
diff
changeset
|
470 | purple_keyring_get_save_password(keyring) == NULL) |
|
a6223370667b
Style: fix braces for http, keyring
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35350
diff
changeset
|
471 | { |
|
34166
8be287b0d6be
keyring.c refactoring: registering, unregistering
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34165
diff
changeset
|
472 | purple_debug_error("keyring", "Cannot register %s, some " |
|
34142
544f05bc883d
Don't allow registering invalid keyring
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34141
diff
changeset
|
473 | "required fields are missing.\n", |
|
34166
8be287b0d6be
keyring.c refactoring: registering, unregistering
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34165
diff
changeset
|
474 | keyring_id ? keyring_id : "(null)"); |
|
34142
544f05bc883d
Don't allow registering invalid keyring
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34141
diff
changeset
|
475 | return; |
|
544f05bc883d
Don't allow registering invalid keyring
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34141
diff
changeset
|
476 | } |
|
33983
317cd0a252c2
Fixed a bunch of bugs/errors, worked on making calls async, on configuration UI, and on Makefiles.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33982
diff
changeset
|
477 | |
|
34167
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
478 | if (purple_keyring_find_keyring_by_id(keyring_id) != NULL) { |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
479 | purple_debug_error("keyring", |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
480 | "Keyring is already registered.\n"); |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
481 | return; |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
482 | } |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
483 | |
|
33978
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
484 | /* If this is the configured keyring, use it. */ |
|
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
485 | if (purple_keyring_inuse == NULL && |
|
35362
a6223370667b
Style: fix braces for http, keyring
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35350
diff
changeset
|
486 | g_strcmp0(keyring_id, purple_keyring_to_use) == 0) |
|
a6223370667b
Style: fix braces for http, keyring
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35350
diff
changeset
|
487 | { |
|
34297
0f1f0b8c84f8
Fix some debug log warnings, adjust verbosity level
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34271
diff
changeset
|
488 | purple_debug_misc("keyring", "Keyring %s matches keyring to " |
|
0f1f0b8c84f8
Fix some debug log warnings, adjust verbosity level
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34271
diff
changeset
|
489 | "use, using it.", keyring_id); |
|
33978
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
490 | purple_keyring_set_inuse(keyring, TRUE, NULL, NULL); |
|
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
491 | } |
|
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
492 | |
|
34127
51c1bce7f52f
Tidying debug messages, signals
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34126
diff
changeset
|
493 | purple_signal_emit(purple_keyring_get_handle(), "keyring-register", |
|
51c1bce7f52f
Tidying debug messages, signals
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34126
diff
changeset
|
494 | keyring_id, keyring); |
|
51c1bce7f52f
Tidying debug messages, signals
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34126
diff
changeset
|
495 | if (purple_debug_is_verbose()) { |
|
51c1bce7f52f
Tidying debug messages, signals
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34126
diff
changeset
|
496 | purple_debug_info("keyring", "Registered keyring: %s.\n", |
|
51c1bce7f52f
Tidying debug messages, signals
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34126
diff
changeset
|
497 | keyring_id); |
|
51c1bce7f52f
Tidying debug messages, signals
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34126
diff
changeset
|
498 | } |
|
33978
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
499 | |
|
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
500 | purple_keyring_keyrings = g_list_prepend(purple_keyring_keyrings, |
|
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
501 | keyring); |
|
33976
ff88d1340abe
Cleaned up keyring.h, updating it to the latest API ideas. Minor changes in other files. Also wrote doxygen documentation for most of the functions in keyring.h.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33973
diff
changeset
|
502 | } |
|
33969
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
503 | |
|
34033
910f2ed3988b
Remove trailing whitespace.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
34032
diff
changeset
|
504 | void |
|
34034
f508fa47f2ac
Reformat many things.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
34033
diff
changeset
|
505 | purple_keyring_unregister(PurpleKeyring *keyring) |
|
33969
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
506 | { |
|
34155
567c48f9658c
Refactor the keyring API
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34154
diff
changeset
|
507 | PurpleKeyring *inuse; |
|
34034
f508fa47f2ac
Reformat many things.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
34033
diff
changeset
|
508 | PurpleKeyring *fallback; |
|
34160
8f0843214194
keyring.c refactoring: replace char with gchar
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34159
diff
changeset
|
509 | const gchar *keyring_id; |
|
33978
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
510 | |
|
33987
9beebdbf44d6
Fixed many bugs and crashes in the keyring subsystem.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33983
diff
changeset
|
511 | g_return_if_fail(keyring != NULL); |
|
34033
910f2ed3988b
Remove trailing whitespace.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
34032
diff
changeset
|
512 | |
|
34166
8be287b0d6be
keyring.c refactoring: registering, unregistering
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34165
diff
changeset
|
513 | keyring_id = purple_keyring_get_id(keyring); |
|
8be287b0d6be
keyring.c refactoring: registering, unregistering
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34165
diff
changeset
|
514 | |
|
34127
51c1bce7f52f
Tidying debug messages, signals
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34126
diff
changeset
|
515 | purple_debug_info("keyring", "Unregistering keyring: %s.\n", |
|
34166
8be287b0d6be
keyring.c refactoring: registering, unregistering
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34165
diff
changeset
|
516 | keyring_id); |
|
33987
9beebdbf44d6
Fixed many bugs and crashes in the keyring subsystem.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33983
diff
changeset
|
517 | |
|
34127
51c1bce7f52f
Tidying debug messages, signals
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34126
diff
changeset
|
518 | purple_signal_emit(purple_keyring_get_handle(), "keyring-unregister", |
|
51c1bce7f52f
Tidying debug messages, signals
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34126
diff
changeset
|
519 | keyring_id, keyring); |
|
33978
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
520 | |
|
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
521 | inuse = purple_keyring_get_inuse(); |
|
34036
bf17ffca901d
Give this a better name.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
34034
diff
changeset
|
522 | fallback = purple_keyring_find_keyring_by_id(PURPLE_DEFAULT_KEYRING); |
|
33978
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
523 | |
|
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
524 | if (inuse == keyring) { |
|
33987
9beebdbf44d6
Fixed many bugs and crashes in the keyring subsystem.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33983
diff
changeset
|
525 | if (inuse != fallback) { |
|
9beebdbf44d6
Fixed many bugs and crashes in the keyring subsystem.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33983
diff
changeset
|
526 | purple_keyring_set_inuse(fallback, TRUE, NULL, NULL); |
|
9beebdbf44d6
Fixed many bugs and crashes in the keyring subsystem.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33983
diff
changeset
|
527 | } else { |
|
9beebdbf44d6
Fixed many bugs and crashes in the keyring subsystem.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33983
diff
changeset
|
528 | fallback = NULL; |
|
9beebdbf44d6
Fixed many bugs and crashes in the keyring subsystem.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33983
diff
changeset
|
529 | purple_keyring_set_inuse(NULL, TRUE, NULL, NULL); |
|
9beebdbf44d6
Fixed many bugs and crashes in the keyring subsystem.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33983
diff
changeset
|
530 | } |
|
33978
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
531 | } |
|
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
532 | |
|
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
533 | purple_keyring_keyrings = g_list_remove(purple_keyring_keyrings, |
|
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
534 | keyring); |
|
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
535 | } |
|
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
536 | |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
537 | GList * |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
538 | purple_keyring_get_options(void) |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
539 | { |
|
34166
8be287b0d6be
keyring.c refactoring: registering, unregistering
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34165
diff
changeset
|
540 | GList *options = NULL; |
|
8be287b0d6be
keyring.c refactoring: registering, unregistering
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34165
diff
changeset
|
541 | GList *it; |
|
34160
8f0843214194
keyring.c refactoring: replace char with gchar
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34159
diff
changeset
|
542 | static gchar currentDisabledName[40]; |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
543 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
544 | if (purple_keyring_get_inuse() == NULL && purple_keyring_to_use != NULL |
|
35362
a6223370667b
Style: fix braces for http, keyring
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35350
diff
changeset
|
545 | && purple_keyring_to_use[0] != '\0') |
|
a6223370667b
Style: fix braces for http, keyring
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35350
diff
changeset
|
546 | { |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
547 | g_snprintf(currentDisabledName, sizeof(currentDisabledName), |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
548 | _("%s (disabled)"), purple_keyring_to_use); |
|
34166
8be287b0d6be
keyring.c refactoring: registering, unregistering
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34165
diff
changeset
|
549 | |
|
8be287b0d6be
keyring.c refactoring: registering, unregistering
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34165
diff
changeset
|
550 | options = g_list_append(options, currentDisabledName); |
|
8be287b0d6be
keyring.c refactoring: registering, unregistering
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34165
diff
changeset
|
551 | options = g_list_append(options, purple_keyring_to_use); |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
552 | } |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
553 | |
|
34166
8be287b0d6be
keyring.c refactoring: registering, unregistering
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34165
diff
changeset
|
554 | for (it = purple_keyring_keyrings; it != NULL; it = it->next) { |
|
8be287b0d6be
keyring.c refactoring: registering, unregistering
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34165
diff
changeset
|
555 | PurpleKeyring *keyring = it->data; |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
556 | |
|
34166
8be287b0d6be
keyring.c refactoring: registering, unregistering
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34165
diff
changeset
|
557 | options = g_list_append(options, |
|
8be287b0d6be
keyring.c refactoring: registering, unregistering
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34165
diff
changeset
|
558 | (gpointer)purple_keyring_get_name(keyring)); |
|
8be287b0d6be
keyring.c refactoring: registering, unregistering
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34165
diff
changeset
|
559 | options = g_list_append(options, |
|
8be287b0d6be
keyring.c refactoring: registering, unregistering
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34165
diff
changeset
|
560 | (gpointer)purple_keyring_get_id(keyring)); |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
561 | } |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
562 | |
|
34166
8be287b0d6be
keyring.c refactoring: registering, unregistering
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34165
diff
changeset
|
563 | return options; |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
564 | } |
|
33978
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
565 | |
|
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
566 | |
|
34157
c67266e97d75
Don't drop exported passwords, when keyring plugin is not loadable
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34155
diff
changeset
|
567 | /**************************************************************************/ |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
568 | /* Keyring plugin wrappers */ |
|
34157
c67266e97d75
Don't drop exported passwords, when keyring plugin is not loadable
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34155
diff
changeset
|
569 | /**************************************************************************/ |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
570 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
571 | static void |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
572 | purple_keyring_close(PurpleKeyring *keyring) |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
573 | { |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
574 | PurpleKeyringClose close_cb; |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
575 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
576 | g_return_if_fail(keyring != NULL); |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
577 | |
|
34190
b81cb5542862
Fix double close crash
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34188
diff
changeset
|
578 | if (keyring->is_cancelling) { |
|
b81cb5542862
Fix double close crash
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34188
diff
changeset
|
579 | keyring->close_after_cancel = TRUE; |
|
b81cb5542862
Fix double close crash
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34188
diff
changeset
|
580 | return; |
|
b81cb5542862
Fix double close crash
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34188
diff
changeset
|
581 | } |
|
b81cb5542862
Fix double close crash
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34188
diff
changeset
|
582 | if (keyring->is_closing) |
|
b81cb5542862
Fix double close crash
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34188
diff
changeset
|
583 | return; |
|
b81cb5542862
Fix double close crash
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34188
diff
changeset
|
584 | keyring->is_closing = TRUE; |
|
b81cb5542862
Fix double close crash
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34188
diff
changeset
|
585 | |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
586 | close_cb = purple_keyring_get_close_keyring(keyring); |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
587 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
588 | if (close_cb != NULL) |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
589 | close_cb(); |
|
34190
b81cb5542862
Fix double close crash
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34188
diff
changeset
|
590 | |
|
b81cb5542862
Fix double close crash
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34188
diff
changeset
|
591 | keyring->is_closing = FALSE; |
|
b81cb5542862
Fix double close crash
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34188
diff
changeset
|
592 | } |
|
b81cb5542862
Fix double close crash
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34188
diff
changeset
|
593 | |
|
b81cb5542862
Fix double close crash
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34188
diff
changeset
|
594 | static void |
|
b81cb5542862
Fix double close crash
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34188
diff
changeset
|
595 | purple_keyring_cancel_requests(PurpleKeyring *keyring) |
|
b81cb5542862
Fix double close crash
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34188
diff
changeset
|
596 | { |
|
b81cb5542862
Fix double close crash
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34188
diff
changeset
|
597 | PurpleKeyringCancelRequests cancel_cb; |
|
b81cb5542862
Fix double close crash
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34188
diff
changeset
|
598 | |
|
b81cb5542862
Fix double close crash
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34188
diff
changeset
|
599 | g_return_if_fail(keyring != NULL); |
|
b81cb5542862
Fix double close crash
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34188
diff
changeset
|
600 | |
|
b81cb5542862
Fix double close crash
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34188
diff
changeset
|
601 | if (keyring->is_cancelling) |
|
b81cb5542862
Fix double close crash
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34188
diff
changeset
|
602 | return; |
|
b81cb5542862
Fix double close crash
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34188
diff
changeset
|
603 | keyring->is_cancelling = TRUE; |
|
b81cb5542862
Fix double close crash
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34188
diff
changeset
|
604 | |
|
b81cb5542862
Fix double close crash
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34188
diff
changeset
|
605 | cancel_cb = purple_keyring_get_cancel_requests(keyring); |
|
b81cb5542862
Fix double close crash
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34188
diff
changeset
|
606 | |
|
b81cb5542862
Fix double close crash
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34188
diff
changeset
|
607 | if (cancel_cb != NULL) |
|
b81cb5542862
Fix double close crash
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34188
diff
changeset
|
608 | cancel_cb(); |
|
b81cb5542862
Fix double close crash
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34188
diff
changeset
|
609 | |
|
b81cb5542862
Fix double close crash
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34188
diff
changeset
|
610 | keyring->is_cancelling = FALSE; |
|
b81cb5542862
Fix double close crash
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34188
diff
changeset
|
611 | |
|
b81cb5542862
Fix double close crash
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34188
diff
changeset
|
612 | if (keyring->close_after_cancel) { |
|
b81cb5542862
Fix double close crash
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34188
diff
changeset
|
613 | keyring->close_after_cancel = FALSE; |
|
b81cb5542862
Fix double close crash
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34188
diff
changeset
|
614 | purple_keyring_close(keyring); |
|
b81cb5542862
Fix double close crash
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34188
diff
changeset
|
615 | } |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
616 | } |
|
33978
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
617 | |
|
34162
31427d618b09
keyring.c refactoring: fix naming for purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34161
diff
changeset
|
618 | static void |
|
34167
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
619 | purple_keyring_drop_passwords_save_cb(PurpleAccount *account, GError *error, |
|
34162
31427d618b09
keyring.c refactoring: fix naming for purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34161
diff
changeset
|
620 | gpointer _tracker) |
|
31427d618b09
keyring.c refactoring: fix naming for purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34161
diff
changeset
|
621 | { |
|
31427d618b09
keyring.c refactoring: fix naming for purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34161
diff
changeset
|
622 | PurpleKeyringDropTracker *tracker = _tracker; |
|
31427d618b09
keyring.c refactoring: fix naming for purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34161
diff
changeset
|
623 | |
|
31427d618b09
keyring.c refactoring: fix naming for purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34161
diff
changeset
|
624 | tracker->drop_outstanding--; |
|
31427d618b09
keyring.c refactoring: fix naming for purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34161
diff
changeset
|
625 | |
|
31427d618b09
keyring.c refactoring: fix naming for purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34161
diff
changeset
|
626 | if (!tracker->finished || tracker->drop_outstanding > 0) |
|
31427d618b09
keyring.c refactoring: fix naming for purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34161
diff
changeset
|
627 | return; |
|
31427d618b09
keyring.c refactoring: fix naming for purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34161
diff
changeset
|
628 | |
|
31427d618b09
keyring.c refactoring: fix naming for purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34161
diff
changeset
|
629 | if (tracker->cb) |
|
31427d618b09
keyring.c refactoring: fix naming for purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34161
diff
changeset
|
630 | tracker->cb(tracker->cb_data); |
|
31427d618b09
keyring.c refactoring: fix naming for purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34161
diff
changeset
|
631 | g_free(tracker); |
|
31427d618b09
keyring.c refactoring: fix naming for purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34161
diff
changeset
|
632 | } |
|
31427d618b09
keyring.c refactoring: fix naming for purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34161
diff
changeset
|
633 | |
|
31427d618b09
keyring.c refactoring: fix naming for purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34161
diff
changeset
|
634 | static void |
|
31427d618b09
keyring.c refactoring: fix naming for purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34161
diff
changeset
|
635 | purple_keyring_drop_passwords(PurpleKeyring *keyring, |
|
31427d618b09
keyring.c refactoring: fix naming for purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34161
diff
changeset
|
636 | PurpleKeyringDropCallback cb, gpointer data) |
|
31427d618b09
keyring.c refactoring: fix naming for purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34161
diff
changeset
|
637 | { |
|
34167
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
638 | GList *it; |
|
34162
31427d618b09
keyring.c refactoring: fix naming for purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34161
diff
changeset
|
639 | PurpleKeyringSave save_cb; |
|
31427d618b09
keyring.c refactoring: fix naming for purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34161
diff
changeset
|
640 | PurpleKeyringDropTracker *tracker; |
|
31427d618b09
keyring.c refactoring: fix naming for purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34161
diff
changeset
|
641 | |
|
31427d618b09
keyring.c refactoring: fix naming for purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34161
diff
changeset
|
642 | g_return_if_fail(keyring != NULL); |
|
31427d618b09
keyring.c refactoring: fix naming for purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34161
diff
changeset
|
643 | |
|
31427d618b09
keyring.c refactoring: fix naming for purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34161
diff
changeset
|
644 | save_cb = purple_keyring_get_save_password(keyring); |
|
34167
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
645 | g_assert(save_cb != NULL); |
|
34162
31427d618b09
keyring.c refactoring: fix naming for purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34161
diff
changeset
|
646 | |
|
39464
e8cb99e0d91f
Fix some leaks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39352
diff
changeset
|
647 | it = purple_accounts_get_all(); |
|
e8cb99e0d91f
Fix some leaks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39352
diff
changeset
|
648 | if (it == NULL) |
|
e8cb99e0d91f
Fix some leaks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39352
diff
changeset
|
649 | return; |
|
e8cb99e0d91f
Fix some leaks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39352
diff
changeset
|
650 | |
|
34162
31427d618b09
keyring.c refactoring: fix naming for purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34161
diff
changeset
|
651 | tracker = g_new0(PurpleKeyringDropTracker, 1); |
|
31427d618b09
keyring.c refactoring: fix naming for purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34161
diff
changeset
|
652 | tracker->cb = cb; |
|
31427d618b09
keyring.c refactoring: fix naming for purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34161
diff
changeset
|
653 | tracker->cb_data = data; |
|
31427d618b09
keyring.c refactoring: fix naming for purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34161
diff
changeset
|
654 | |
|
39464
e8cb99e0d91f
Fix some leaks in libpurple.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39352
diff
changeset
|
655 | for (; it != NULL; it = it->next) { |
|
34167
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
656 | PurpleAccount *account = it->data; |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
657 | |
|
34162
31427d618b09
keyring.c refactoring: fix naming for purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34161
diff
changeset
|
658 | tracker->drop_outstanding++; |
|
34167
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
659 | if (it->next == NULL) |
|
34162
31427d618b09
keyring.c refactoring: fix naming for purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34161
diff
changeset
|
660 | tracker->finished = TRUE; |
|
31427d618b09
keyring.c refactoring: fix naming for purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34161
diff
changeset
|
661 | |
|
34167
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
662 | save_cb(account, NULL, purple_keyring_drop_passwords_save_cb, |
|
34162
31427d618b09
keyring.c refactoring: fix naming for purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34161
diff
changeset
|
663 | tracker); |
|
31427d618b09
keyring.c refactoring: fix naming for purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34161
diff
changeset
|
664 | } |
|
31427d618b09
keyring.c refactoring: fix naming for purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34161
diff
changeset
|
665 | } |
|
31427d618b09
keyring.c refactoring: fix naming for purple_keyring_set_inuse
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34161
diff
changeset
|
666 | |
|
33981
8c8fe2e5bbcd
dded import/export in account.c, new version of internalkeyring.c, and added stuff to makefiles.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33978
diff
changeset
|
667 | gboolean |
|
34167
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
668 | purple_keyring_import_password(PurpleAccount *account, const gchar *keyring_id, |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
669 | const gchar *mode, const gchar *data, GError **error) |
|
33978
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
670 | { |
|
34167
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
671 | PurpleKeyring *keyring; |
|
34155
567c48f9658c
Refactor the keyring API
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34154
diff
changeset
|
672 | PurpleKeyring *inuse; |
|
33971
96eff57a4349
Fixed warnings
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33970
diff
changeset
|
673 | PurpleKeyringImportPassword import; |
|
34167
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
674 | |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
675 | g_return_val_if_fail(account != NULL, FALSE); |
|
33971
96eff57a4349
Fixed warnings
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33970
diff
changeset
|
676 | |
|
34167
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
677 | if (keyring_id == NULL) |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
678 | keyring_id = PURPLE_DEFAULT_KEYRING; |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
679 | |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
680 | purple_debug_misc("keyring", "Importing password for account %s to " |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
681 | "keyring %s.\n", purple_keyring_print_account(account), |
|
34157
c67266e97d75
Don't drop exported passwords, when keyring plugin is not loadable
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34155
diff
changeset
|
682 | keyring_id); |
|
33982
58a0de711782
Added support for the PURPLE_PLUGIN_FLAG_AUTOLOAD flag, corrected a few bugs and crashed. The compatibility plugin is automatically loaded at startup, and works nicely in compatibility mode (read_sync, write_sync, import, export). Also, I played unsuccessfully with makefiles, so i moved the keyring up one directory. I've finally gotten to the point where I run "make && sudo make install" every now and then.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33981
diff
changeset
|
683 | |
|
34167
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
684 | keyring = purple_keyring_find_keyring_by_id(keyring_id); |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
685 | if (keyring == NULL) { |
|
39921
a9c92a82f4c8
Don't pass literals to g_set_error / g_error_new.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39892
diff
changeset
|
686 | g_set_error_literal(error, PURPLE_KEYRING_ERROR, |
|
a9c92a82f4c8
Don't pass literals to g_set_error / g_error_new.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39892
diff
changeset
|
687 | PURPLE_KEYRING_ERROR_BACKENDFAIL, |
|
a9c92a82f4c8
Don't pass literals to g_set_error / g_error_new.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39892
diff
changeset
|
688 | _("Specified keyring is not registered.")); |
|
34167
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
689 | purple_debug_warning("Keyring", "Specified keyring is not " |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
690 | "registered, cannot import password info for account " |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
691 | "%s.\n", purple_keyring_print_account(account)); |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
692 | return FALSE; |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
693 | } |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
694 | |
|
33978
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
695 | inuse = purple_keyring_get_inuse(); |
|
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
696 | if (inuse == NULL) { |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
697 | PurpleKeyringFailedImport *import; |
|
39921
a9c92a82f4c8
Don't pass literals to g_set_error / g_error_new.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39892
diff
changeset
|
698 | g_set_error_literal( |
|
a9c92a82f4c8
Don't pass literals to g_set_error / g_error_new.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39892
diff
changeset
|
699 | error, PURPLE_KEYRING_ERROR, PURPLE_KEYRING_ERROR_NOKEYRING, |
|
a9c92a82f4c8
Don't pass literals to g_set_error / g_error_new.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39892
diff
changeset
|
700 | _("No keyring loaded, cannot import password info.")); |
|
34157
c67266e97d75
Don't drop exported passwords, when keyring plugin is not loadable
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34155
diff
changeset
|
701 | purple_debug_warning("Keyring", |
|
34167
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
702 | "No keyring loaded, cannot import password info for " |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
703 | "account %s.\n", purple_keyring_print_account(account)); |
|
34157
c67266e97d75
Don't drop exported passwords, when keyring plugin is not loadable
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34155
diff
changeset
|
704 | |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
705 | import = g_new0(PurpleKeyringFailedImport, 1); |
|
34157
c67266e97d75
Don't drop exported passwords, when keyring plugin is not loadable
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34155
diff
changeset
|
706 | import->keyring_id = g_strdup(keyring_id); |
|
c67266e97d75
Don't drop exported passwords, when keyring plugin is not loadable
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34155
diff
changeset
|
707 | import->mode = g_strdup(mode); |
|
c67266e97d75
Don't drop exported passwords, when keyring plugin is not loadable
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34155
diff
changeset
|
708 | import->data = g_strdup(data); |
|
34167
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
709 | g_hash_table_insert(purple_keyring_failed_imports, account, |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
710 | import); |
|
33981
8c8fe2e5bbcd
dded import/export in account.c, new version of internalkeyring.c, and added stuff to makefiles.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33978
diff
changeset
|
711 | return FALSE; |
|
33978
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
712 | } |
|
33969
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
713 | |
|
34167
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
714 | if (inuse != keyring) { |
|
39921
a9c92a82f4c8
Don't pass literals to g_set_error / g_error_new.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39892
diff
changeset
|
715 | g_set_error_literal( |
|
a9c92a82f4c8
Don't pass literals to g_set_error / g_error_new.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39892
diff
changeset
|
716 | error, PURPLE_KEYRING_ERROR, PURPLE_KEYRING_ERROR_INTERNAL, |
|
a9c92a82f4c8
Don't pass literals to g_set_error / g_error_new.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39892
diff
changeset
|
717 | _("Specified keyring ID does not match the loaded one.")); |
|
34167
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
718 | purple_debug_error("keyring", |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
719 | "Specified keyring %s is not currently used (%s). " |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
720 | "Data will be lost.\n", keyring_id, |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
721 | purple_keyring_get_id(inuse)); |
|
33981
8c8fe2e5bbcd
dded import/export in account.c, new version of internalkeyring.c, and added stuff to makefiles.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33978
diff
changeset
|
722 | return FALSE; |
|
33978
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
723 | } |
|
33969
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
724 | |
|
33978
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
725 | import = purple_keyring_get_import_password(inuse); |
|
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
726 | if (import == NULL) { |
|
34134
fda68dc6481c
Don't require implementing import/export of password
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34133
diff
changeset
|
727 | if (purple_debug_is_verbose()) { |
|
fda68dc6481c
Don't require implementing import/export of password
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34133
diff
changeset
|
728 | purple_debug_misc("Keyring", "Configured keyring " |
|
fda68dc6481c
Don't require implementing import/export of password
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34133
diff
changeset
|
729 | "cannot import password info. This might be " |
|
fda68dc6481c
Don't require implementing import/export of password
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34133
diff
changeset
|
730 | "normal.\n"); |
|
34125
34c3dbf12e95
Fix some memleaks
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34123
diff
changeset
|
731 | } |
|
34134
fda68dc6481c
Don't require implementing import/export of password
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34133
diff
changeset
|
732 | return TRUE; |
|
33969
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
733 | } |
|
34033
910f2ed3988b
Remove trailing whitespace.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
34032
diff
changeset
|
734 | |
|
33981
8c8fe2e5bbcd
dded import/export in account.c, new version of internalkeyring.c, and added stuff to makefiles.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33978
diff
changeset
|
735 | return import(account, mode, data, error); |
|
33969
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
736 | } |
|
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
737 | |
|
33981
8c8fe2e5bbcd
dded import/export in account.c, new version of internalkeyring.c, and added stuff to makefiles.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33978
diff
changeset
|
738 | gboolean |
|
34167
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
739 | purple_keyring_export_password(PurpleAccount *account, const gchar **keyring_id, |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
740 | const gchar **mode, gchar **data, GError **error, |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
741 | GDestroyNotify *destroy) |
|
33969
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
742 | { |
|
34155
567c48f9658c
Refactor the keyring API
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34154
diff
changeset
|
743 | PurpleKeyring *inuse; |
|
33971
96eff57a4349
Fixed warnings
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33970
diff
changeset
|
744 | PurpleKeyringExportPassword export; |
|
96eff57a4349
Fixed warnings
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33970
diff
changeset
|
745 | |
|
34167
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
746 | g_return_val_if_fail(account != NULL, FALSE); |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
747 | g_return_val_if_fail(keyring_id != NULL, FALSE); |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
748 | g_return_val_if_fail(mode != NULL, FALSE); |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
749 | g_return_val_if_fail(data != NULL, FALSE); |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
750 | g_return_val_if_fail(error != NULL, FALSE); |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
751 | |
|
33978
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
752 | inuse = purple_keyring_get_inuse(); |
|
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
753 | |
|
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
754 | if (inuse == NULL) { |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
755 | PurpleKeyringFailedImport *import = g_hash_table_lookup( |
|
34157
c67266e97d75
Don't drop exported passwords, when keyring plugin is not loadable
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34155
diff
changeset
|
756 | purple_keyring_failed_imports, account); |
|
c67266e97d75
Don't drop exported passwords, when keyring plugin is not loadable
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34155
diff
changeset
|
757 | |
|
c67266e97d75
Don't drop exported passwords, when keyring plugin is not loadable
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34155
diff
changeset
|
758 | if (import == NULL) { |
|
39921
a9c92a82f4c8
Don't pass literals to g_set_error / g_error_new.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39892
diff
changeset
|
759 | g_set_error_literal( |
|
a9c92a82f4c8
Don't pass literals to g_set_error / g_error_new.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39892
diff
changeset
|
760 | error, PURPLE_KEYRING_ERROR, PURPLE_KEYRING_ERROR_NOKEYRING, |
|
a9c92a82f4c8
Don't pass literals to g_set_error / g_error_new.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39892
diff
changeset
|
761 | _("No keyring configured, cannot export password info.")); |
|
34157
c67266e97d75
Don't drop exported passwords, when keyring plugin is not loadable
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34155
diff
changeset
|
762 | purple_debug_warning("keyring", |
|
34167
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
763 | "No keyring configured, cannot export password " |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
764 | "info.\n"); |
|
34157
c67266e97d75
Don't drop exported passwords, when keyring plugin is not loadable
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34155
diff
changeset
|
765 | return FALSE; |
|
c67266e97d75
Don't drop exported passwords, when keyring plugin is not loadable
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34155
diff
changeset
|
766 | } else { |
|
34167
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
767 | purple_debug_info("keyring", "No keyring configured, " |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
768 | "getting fallback export data for %s.\n", |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
769 | purple_keyring_print_account(account)); |
|
34157
c67266e97d75
Don't drop exported passwords, when keyring plugin is not loadable
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34155
diff
changeset
|
770 | |
|
c67266e97d75
Don't drop exported passwords, when keyring plugin is not loadable
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34155
diff
changeset
|
771 | *keyring_id = import->keyring_id; |
|
c67266e97d75
Don't drop exported passwords, when keyring plugin is not loadable
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34155
diff
changeset
|
772 | *mode = import->mode; |
|
c67266e97d75
Don't drop exported passwords, when keyring plugin is not loadable
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34155
diff
changeset
|
773 | *data = g_strdup(import->data); |
|
34170
94102637e7c7
Coding style and entry description for GNOME Keyring
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34169
diff
changeset
|
774 | *destroy = (GDestroyNotify)purple_str_wipe; |
|
34157
c67266e97d75
Don't drop exported passwords, when keyring plugin is not loadable
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34155
diff
changeset
|
775 | return TRUE; |
|
c67266e97d75
Don't drop exported passwords, when keyring plugin is not loadable
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34155
diff
changeset
|
776 | } |
|
33978
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
777 | } |
|
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
778 | |
|
34127
51c1bce7f52f
Tidying debug messages, signals
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34126
diff
changeset
|
779 | if (purple_debug_is_verbose()) { |
|
51c1bce7f52f
Tidying debug messages, signals
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34126
diff
changeset
|
780 | purple_debug_misc("keyring", |
|
34167
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
781 | "Exporting password for account %s from keyring %s\n", |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
782 | purple_keyring_print_account(account), |
|
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
783 | purple_keyring_get_id(inuse)); |
|
34127
51c1bce7f52f
Tidying debug messages, signals
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34126
diff
changeset
|
784 | } |
|
33987
9beebdbf44d6
Fixed many bugs and crashes in the keyring subsystem.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33983
diff
changeset
|
785 | |
|
34167
43db4e8d785a
keyring.c refactoring: import, export
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34166
diff
changeset
|
786 | *keyring_id = purple_keyring_get_id(inuse); |
|
33978
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
787 | |
|
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
788 | export = purple_keyring_get_export_password(inuse); |
|
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
789 | if (export == NULL) { |
|
34134
fda68dc6481c
Don't require implementing import/export of password
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34133
diff
changeset
|
790 | if (purple_debug_is_verbose()) { |
|
fda68dc6481c
Don't require implementing import/export of password
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34133
diff
changeset
|
791 | purple_debug_misc("Keyring", "Configured keyring " |
|
fda68dc6481c
Don't require implementing import/export of password
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34133
diff
changeset
|
792 | "cannot export password info. This might be " |
|
fda68dc6481c
Don't require implementing import/export of password
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34133
diff
changeset
|
793 | "normal.\n"); |
|
fda68dc6481c
Don't require implementing import/export of password
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34133
diff
changeset
|
794 | } |
|
fda68dc6481c
Don't require implementing import/export of password
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34133
diff
changeset
|
795 | *mode = NULL; |
|
fda68dc6481c
Don't require implementing import/export of password
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34133
diff
changeset
|
796 | *data = NULL; |
|
fda68dc6481c
Don't require implementing import/export of password
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34133
diff
changeset
|
797 | *destroy = NULL; |
|
fda68dc6481c
Don't require implementing import/export of password
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34133
diff
changeset
|
798 | return TRUE; |
|
33969
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
799 | } |
|
33978
2c649fae664e
Final version of the API, corrected, cleaned, and documented.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33976
diff
changeset
|
800 | |
|
33981
8c8fe2e5bbcd
dded import/export in account.c, new version of internalkeyring.c, and added stuff to makefiles.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33978
diff
changeset
|
801 | return export(account, mode, data, error, destroy); |
|
33969
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
802 | } |
|
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
803 | |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
804 | /**************************************************************************/ |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
805 | /* PurpleKeyring accessors */ |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
806 | /**************************************************************************/ |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
807 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
808 | PurpleKeyring * |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
809 | purple_keyring_new(void) |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
810 | { |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
811 | return g_new0(PurpleKeyring, 1); |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
812 | } |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
813 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
814 | void |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
815 | purple_keyring_free(PurpleKeyring *keyring) |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
816 | { |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
817 | g_return_if_fail(keyring != NULL); |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
818 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
819 | g_free(keyring->name); |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
820 | g_free(keyring->id); |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
821 | g_free(keyring); |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
822 | } |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
823 | |
|
34160
8f0843214194
keyring.c refactoring: replace char with gchar
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34159
diff
changeset
|
824 | const gchar * |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
825 | purple_keyring_get_name(const PurpleKeyring *keyring) |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
826 | { |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
827 | g_return_val_if_fail(keyring != NULL, NULL); |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
828 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
829 | return keyring->name; |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
830 | } |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
831 | |
|
34160
8f0843214194
keyring.c refactoring: replace char with gchar
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34159
diff
changeset
|
832 | const gchar * |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
833 | purple_keyring_get_id(const PurpleKeyring *keyring) |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
834 | { |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
835 | g_return_val_if_fail(keyring != NULL, NULL); |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
836 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
837 | return keyring->id; |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
838 | } |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
839 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
840 | PurpleKeyringRead |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
841 | purple_keyring_get_read_password(const PurpleKeyring *keyring) |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
842 | { |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
843 | g_return_val_if_fail(keyring != NULL, NULL); |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
844 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
845 | return keyring->read_password; |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
846 | } |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
847 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
848 | PurpleKeyringSave |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
849 | purple_keyring_get_save_password(const PurpleKeyring *keyring) |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
850 | { |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
851 | g_return_val_if_fail(keyring != NULL, NULL); |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
852 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
853 | return keyring->save_password; |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
854 | } |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
855 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
856 | PurpleKeyringCancelRequests |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
857 | purple_keyring_get_cancel_requests(const PurpleKeyring *keyring) |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
858 | { |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
859 | g_return_val_if_fail(keyring != NULL, NULL); |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
860 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
861 | return keyring->cancel_requests; |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
862 | } |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
863 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
864 | PurpleKeyringClose |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
865 | purple_keyring_get_close_keyring(const PurpleKeyring *keyring) |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
866 | { |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
867 | g_return_val_if_fail(keyring != NULL, NULL); |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
868 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
869 | return keyring->close_keyring; |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
870 | } |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
871 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
872 | PurpleKeyringImportPassword |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
873 | purple_keyring_get_import_password(const PurpleKeyring *keyring) |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
874 | { |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
875 | g_return_val_if_fail(keyring != NULL, NULL); |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
876 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
877 | return keyring->import_password; |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
878 | } |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
879 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
880 | PurpleKeyringExportPassword |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
881 | purple_keyring_get_export_password(const PurpleKeyring *keyring) |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
882 | { |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
883 | g_return_val_if_fail(keyring != NULL, NULL); |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
884 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
885 | return keyring->export_password; |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
886 | } |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
887 | |
|
34185
cb2fe6b04447
Initial support for keyring settings
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34170
diff
changeset
|
888 | PurpleKeyringReadSettings |
|
cb2fe6b04447
Initial support for keyring settings
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34170
diff
changeset
|
889 | purple_keyring_get_read_settings(const PurpleKeyring *keyring) |
|
cb2fe6b04447
Initial support for keyring settings
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34170
diff
changeset
|
890 | { |
|
cb2fe6b04447
Initial support for keyring settings
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34170
diff
changeset
|
891 | g_return_val_if_fail(keyring != NULL, NULL); |
|
cb2fe6b04447
Initial support for keyring settings
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34170
diff
changeset
|
892 | |
|
cb2fe6b04447
Initial support for keyring settings
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34170
diff
changeset
|
893 | return keyring->read_settings; |
|
cb2fe6b04447
Initial support for keyring settings
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34170
diff
changeset
|
894 | } |
|
cb2fe6b04447
Initial support for keyring settings
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34170
diff
changeset
|
895 | |
|
cb2fe6b04447
Initial support for keyring settings
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34170
diff
changeset
|
896 | PurpleKeyringApplySettings |
|
cb2fe6b04447
Initial support for keyring settings
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34170
diff
changeset
|
897 | purple_keyring_get_apply_settings(const PurpleKeyring *keyring) |
|
cb2fe6b04447
Initial support for keyring settings
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34170
diff
changeset
|
898 | { |
|
cb2fe6b04447
Initial support for keyring settings
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34170
diff
changeset
|
899 | g_return_val_if_fail(keyring != NULL, NULL); |
|
cb2fe6b04447
Initial support for keyring settings
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34170
diff
changeset
|
900 | |
|
cb2fe6b04447
Initial support for keyring settings
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34170
diff
changeset
|
901 | return keyring->apply_settings; |
|
cb2fe6b04447
Initial support for keyring settings
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34170
diff
changeset
|
902 | } |
|
cb2fe6b04447
Initial support for keyring settings
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34170
diff
changeset
|
903 | |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
904 | void |
|
34160
8f0843214194
keyring.c refactoring: replace char with gchar
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34159
diff
changeset
|
905 | purple_keyring_set_name(PurpleKeyring *keyring, const gchar *name) |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
906 | { |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
907 | g_return_if_fail(keyring != NULL); |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
908 | g_return_if_fail(name != NULL); |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
909 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
910 | g_free(keyring->name); |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
911 | keyring->name = g_strdup(name); |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
912 | } |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
913 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
914 | void |
|
34160
8f0843214194
keyring.c refactoring: replace char with gchar
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34159
diff
changeset
|
915 | purple_keyring_set_id(PurpleKeyring *keyring, const gchar *id) |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
916 | { |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
917 | g_return_if_fail(keyring != NULL); |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
918 | g_return_if_fail(id != NULL); |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
919 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
920 | g_free(keyring->id); |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
921 | keyring->id = g_strdup(id); |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
922 | } |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
923 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
924 | void |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
925 | purple_keyring_set_read_password(PurpleKeyring *keyring, |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
926 | PurpleKeyringRead read_cb) |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
927 | { |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
928 | g_return_if_fail(keyring != NULL); |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
929 | g_return_if_fail(read_cb != NULL); |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
930 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
931 | keyring->read_password = read_cb; |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
932 | } |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
933 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
934 | void |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
935 | purple_keyring_set_save_password(PurpleKeyring *keyring, |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
936 | PurpleKeyringSave save_cb) |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
937 | { |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
938 | g_return_if_fail(keyring != NULL); |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
939 | g_return_if_fail(save_cb != NULL); |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
940 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
941 | keyring->save_password = save_cb; |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
942 | } |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
943 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
944 | void |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
945 | purple_keyring_set_cancel_requests(PurpleKeyring *keyring, |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
946 | PurpleKeyringCancelRequests cancel_requests) |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
947 | { |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
948 | g_return_if_fail(keyring != NULL); |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
949 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
950 | keyring->cancel_requests = cancel_requests; |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
951 | } |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
952 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
953 | void |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
954 | purple_keyring_set_close_keyring(PurpleKeyring *keyring, |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
955 | PurpleKeyringClose close_cb) |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
956 | { |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
957 | g_return_if_fail(keyring != NULL); |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
958 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
959 | keyring->close_keyring = close_cb; |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
960 | } |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
961 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
962 | void |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
963 | purple_keyring_set_import_password(PurpleKeyring *keyring, |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
964 | PurpleKeyringImportPassword import_password) |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
965 | { |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
966 | g_return_if_fail(keyring != NULL); |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
967 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
968 | keyring->import_password = import_password; |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
969 | } |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
970 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
971 | void |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
972 | purple_keyring_set_export_password(PurpleKeyring *keyring, |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
973 | PurpleKeyringExportPassword export_password) |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
974 | { |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
975 | g_return_if_fail(keyring != NULL); |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
976 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
977 | keyring->export_password = export_password; |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
978 | } |
|
33969
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
979 | |
|
34185
cb2fe6b04447
Initial support for keyring settings
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34170
diff
changeset
|
980 | void |
|
cb2fe6b04447
Initial support for keyring settings
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34170
diff
changeset
|
981 | purple_keyring_set_read_settings(PurpleKeyring *keyring, |
|
cb2fe6b04447
Initial support for keyring settings
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34170
diff
changeset
|
982 | PurpleKeyringReadSettings read_settings) |
|
cb2fe6b04447
Initial support for keyring settings
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34170
diff
changeset
|
983 | { |
|
cb2fe6b04447
Initial support for keyring settings
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34170
diff
changeset
|
984 | g_return_if_fail(keyring != NULL); |
|
cb2fe6b04447
Initial support for keyring settings
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34170
diff
changeset
|
985 | |
|
cb2fe6b04447
Initial support for keyring settings
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34170
diff
changeset
|
986 | keyring->read_settings = read_settings; |
|
cb2fe6b04447
Initial support for keyring settings
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34170
diff
changeset
|
987 | } |
|
cb2fe6b04447
Initial support for keyring settings
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34170
diff
changeset
|
988 | |
|
cb2fe6b04447
Initial support for keyring settings
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34170
diff
changeset
|
989 | void |
|
cb2fe6b04447
Initial support for keyring settings
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34170
diff
changeset
|
990 | purple_keyring_set_apply_settings(PurpleKeyring *keyring, |
|
cb2fe6b04447
Initial support for keyring settings
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34170
diff
changeset
|
991 | PurpleKeyringApplySettings apply_settings) |
|
cb2fe6b04447
Initial support for keyring settings
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34170
diff
changeset
|
992 | { |
|
cb2fe6b04447
Initial support for keyring settings
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34170
diff
changeset
|
993 | g_return_if_fail(keyring != NULL); |
|
cb2fe6b04447
Initial support for keyring settings
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34170
diff
changeset
|
994 | |
|
cb2fe6b04447
Initial support for keyring settings
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34170
diff
changeset
|
995 | keyring->apply_settings = apply_settings; |
|
cb2fe6b04447
Initial support for keyring settings
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34170
diff
changeset
|
996 | } |
|
cb2fe6b04447
Initial support for keyring settings
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34170
diff
changeset
|
997 | |
|
33969
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
998 | |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
999 | /**************************************************************************/ |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1000 | /* Error Codes */ |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1001 | /**************************************************************************/ |
|
33969
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
1002 | |
|
33981
8c8fe2e5bbcd
dded import/export in account.c, new version of internalkeyring.c, and added stuff to makefiles.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33978
diff
changeset
|
1003 | GQuark purple_keyring_error_domain(void) |
|
33970
4b6a0141a242
Fixed syntax and types error. keyring.c and keyring.h will now compile, but will issue warnings with -Wall
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33969
diff
changeset
|
1004 | { |
|
33998
5fcfc69be362
Added support for master password in pidgin's pref interface.
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33997
diff
changeset
|
1005 | return g_quark_from_static_string("libpurple keyring"); |
|
33970
4b6a0141a242
Fixed syntax and types error. keyring.c and keyring.h will now compile, but will issue warnings with -Wall
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
33969
diff
changeset
|
1006 | } |
|
33969
cd9387938af8
added files that were'nt in workspace
Vivien Bernet-Rollande <scrouaf@soc.pidgin.im>
parents:
diff
changeset
|
1007 | |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1008 | /**************************************************************************/ |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1009 | /* Keyring Subsystem */ |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1010 | /**************************************************************************/ |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1011 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1012 | static void purple_keyring_core_initialized_cb(void) |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1013 | { |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1014 | if (purple_keyring_inuse == NULL) { |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1015 | purple_notify_error(NULL, _("Keyrings"), |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1016 | _("Failed to load selected keyring."), |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1017 | _("Check your system configuration or select another " |
|
34449
bbcb198650b7
Notify API: extend purple_notify_message with PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34297
diff
changeset
|
1018 | "one in Preferences dialog."), NULL); |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1019 | } |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1020 | } |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1021 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1022 | static void purple_keyring_core_quitting_cb() |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1023 | { |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1024 | if (current_change_tracker != NULL) { |
|
34168
449a39c8e26f
keyring.c refactoring: finish it
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34167
diff
changeset
|
1025 | PurpleKeyringChangeTracker *tracker = current_change_tracker; |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1026 | tracker->abort = TRUE; |
|
35350
c4a6a72c6662
Style: fix keyrings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35157
diff
changeset
|
1027 | if (tracker->old_kr) |
|
c4a6a72c6662
Style: fix keyrings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35157
diff
changeset
|
1028 | purple_keyring_cancel_requests(tracker->old_kr); |
|
c4a6a72c6662
Style: fix keyrings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35157
diff
changeset
|
1029 | if (current_change_tracker == tracker && tracker->new_kr) |
|
c4a6a72c6662
Style: fix keyrings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35157
diff
changeset
|
1030 | purple_keyring_cancel_requests(tracker->new_kr); |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1031 | } |
|
34168
449a39c8e26f
keyring.c refactoring: finish it
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34167
diff
changeset
|
1032 | |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1033 | purple_keyring_is_quitting = TRUE; |
|
34190
b81cb5542862
Fix double close crash
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34188
diff
changeset
|
1034 | if (purple_keyring_inuse != NULL) |
|
b81cb5542862
Fix double close crash
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34188
diff
changeset
|
1035 | purple_keyring_cancel_requests(purple_keyring_inuse); |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1036 | } |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1037 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1038 | void |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1039 | purple_keyring_init(void) |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1040 | { |
|
34160
8f0843214194
keyring.c refactoring: replace char with gchar
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34159
diff
changeset
|
1041 | const gchar *touse; |
|
36401
b820d9a76ce9
Refactored libpurple to use the ref'd plugins list
Ankit Vani <a@nevitus.org>
parents:
36383
diff
changeset
|
1042 | GList *plugins, *it; |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1043 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1044 | purple_keyring_keyrings = NULL; |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1045 | purple_keyring_inuse = NULL; |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1046 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1047 | purple_keyring_failed_imports = g_hash_table_new_full(g_direct_hash, |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1048 | g_direct_equal, NULL, |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1049 | (GDestroyNotify)purple_keyring_failed_import_free); |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1050 | |
|
34168
449a39c8e26f
keyring.c refactoring: finish it
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34167
diff
changeset
|
1051 | /* void keyring_register(const char *keyring_id, |
|
449a39c8e26f
keyring.c refactoring: finish it
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34167
diff
changeset
|
1052 | * PurpleKeyring * keyring); |
|
449a39c8e26f
keyring.c refactoring: finish it
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34167
diff
changeset
|
1053 | * |
|
449a39c8e26f
keyring.c refactoring: finish it
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34167
diff
changeset
|
1054 | * A signal called when keyring is registered. |
|
449a39c8e26f
keyring.c refactoring: finish it
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34167
diff
changeset
|
1055 | * |
|
449a39c8e26f
keyring.c refactoring: finish it
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34167
diff
changeset
|
1056 | * @param keyring_id The keyring ID. |
|
449a39c8e26f
keyring.c refactoring: finish it
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34167
diff
changeset
|
1057 | * @param keyring The keyring. |
|
449a39c8e26f
keyring.c refactoring: finish it
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34167
diff
changeset
|
1058 | */ |
|
34819
727f35cfde65
Added a boxed type for PurpleKeyring. Refactored keyring to use GType instead of PurpleValue.
Ankit Vani <a@nevitus.org>
parents:
34199
diff
changeset
|
1059 | purple_signal_register(purple_keyring_get_handle(), "keyring-register", |
|
727f35cfde65
Added a boxed type for PurpleKeyring. Refactored keyring to use GType instead of PurpleValue.
Ankit Vani <a@nevitus.org>
parents:
34199
diff
changeset
|
1060 | purple_marshal_VOID__POINTER_POINTER, G_TYPE_NONE, 2, G_TYPE_STRING, |
|
727f35cfde65
Added a boxed type for PurpleKeyring. Refactored keyring to use GType instead of PurpleValue.
Ankit Vani <a@nevitus.org>
parents:
34199
diff
changeset
|
1061 | PURPLE_TYPE_KEYRING); |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1062 | |
|
34168
449a39c8e26f
keyring.c refactoring: finish it
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34167
diff
changeset
|
1063 | /* void keyring_unregister(const char *keyring_id, |
|
449a39c8e26f
keyring.c refactoring: finish it
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34167
diff
changeset
|
1064 | * PurpleKeyring * keyring); |
|
449a39c8e26f
keyring.c refactoring: finish it
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34167
diff
changeset
|
1065 | * |
|
449a39c8e26f
keyring.c refactoring: finish it
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34167
diff
changeset
|
1066 | * A signal called when keyring is unregistered. |
|
449a39c8e26f
keyring.c refactoring: finish it
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34167
diff
changeset
|
1067 | * |
|
449a39c8e26f
keyring.c refactoring: finish it
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34167
diff
changeset
|
1068 | * @param keyring_id The keyring ID. |
|
449a39c8e26f
keyring.c refactoring: finish it
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34167
diff
changeset
|
1069 | * @param keyring The keyring. |
|
449a39c8e26f
keyring.c refactoring: finish it
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34167
diff
changeset
|
1070 | */ |
|
34819
727f35cfde65
Added a boxed type for PurpleKeyring. Refactored keyring to use GType instead of PurpleValue.
Ankit Vani <a@nevitus.org>
parents:
34199
diff
changeset
|
1071 | purple_signal_register(purple_keyring_get_handle(), "keyring-unregister", |
|
727f35cfde65
Added a boxed type for PurpleKeyring. Refactored keyring to use GType instead of PurpleValue.
Ankit Vani <a@nevitus.org>
parents:
34199
diff
changeset
|
1072 | purple_marshal_VOID__POINTER_POINTER, G_TYPE_NONE, 2, G_TYPE_STRING, |
|
727f35cfde65
Added a boxed type for PurpleKeyring. Refactored keyring to use GType instead of PurpleValue.
Ankit Vani <a@nevitus.org>
parents:
34199
diff
changeset
|
1073 | PURPLE_TYPE_KEYRING); |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1074 | |
|
34168
449a39c8e26f
keyring.c refactoring: finish it
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34167
diff
changeset
|
1075 | /* void password_migration(PurpleAccount* account); |
|
449a39c8e26f
keyring.c refactoring: finish it
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34167
diff
changeset
|
1076 | * |
|
449a39c8e26f
keyring.c refactoring: finish it
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34167
diff
changeset
|
1077 | * A signal called, when a password for the account was moved to another |
|
449a39c8e26f
keyring.c refactoring: finish it
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34167
diff
changeset
|
1078 | * keyring. |
|
449a39c8e26f
keyring.c refactoring: finish it
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34167
diff
changeset
|
1079 | * |
|
449a39c8e26f
keyring.c refactoring: finish it
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34167
diff
changeset
|
1080 | * @param account The account. |
|
449a39c8e26f
keyring.c refactoring: finish it
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34167
diff
changeset
|
1081 | */ |
|
34819
727f35cfde65
Added a boxed type for PurpleKeyring. Refactored keyring to use GType instead of PurpleValue.
Ankit Vani <a@nevitus.org>
parents:
34199
diff
changeset
|
1082 | purple_signal_register(purple_keyring_get_handle(), "password-migration", |
|
727f35cfde65
Added a boxed type for PurpleKeyring. Refactored keyring to use GType instead of PurpleValue.
Ankit Vani <a@nevitus.org>
parents:
34199
diff
changeset
|
1083 | purple_marshal_VOID__POINTER, G_TYPE_NONE, 1, PURPLE_TYPE_ACCOUNT); |
|
34165
cdd4b0dfe92b
keyring.c refactoring: use signal instead of hack depending on implementation
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34164
diff
changeset
|
1084 | |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1085 | touse = purple_prefs_get_string("/purple/keyring/active"); |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1086 | if (touse == NULL) { |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1087 | purple_prefs_add_none("/purple/keyring"); |
|
34168
449a39c8e26f
keyring.c refactoring: finish it
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34167
diff
changeset
|
1088 | purple_prefs_add_string("/purple/keyring/active", |
|
449a39c8e26f
keyring.c refactoring: finish it
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34167
diff
changeset
|
1089 | PURPLE_DEFAULT_KEYRING); |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1090 | purple_keyring_to_use = g_strdup(PURPLE_DEFAULT_KEYRING); |
|
34168
449a39c8e26f
keyring.c refactoring: finish it
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34167
diff
changeset
|
1091 | } else |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1092 | purple_keyring_to_use = g_strdup(touse); |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1093 | |
|
34161
ab354da721d5
keyring.c refactoring: prefs watching
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34160
diff
changeset
|
1094 | purple_keyring_pref_connect(); |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1095 | |
|
36401
b820d9a76ce9
Refactored libpurple to use the ref'd plugins list
Ankit Vani <a@nevitus.org>
parents:
36383
diff
changeset
|
1096 | plugins = purple_plugins_find_all(); |
| 37065 | 1097 | for (it = plugins; it != NULL; it = it->next) { |
|
36431
ea007725fd4d
Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents:
36430
diff
changeset
|
1098 | PurplePlugin *plugin = PURPLE_PLUGIN(it->data); |
|
39834
0345d198dbd6
Remove redundant purple_plugin_info_get_* wrappers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39464
diff
changeset
|
1099 | GPluginPluginInfo *info = |
|
0345d198dbd6
Remove redundant purple_plugin_info_get_* wrappers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39464
diff
changeset
|
1100 | GPLUGIN_PLUGIN_INFO(purple_plugin_get_info(plugin)); |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1101 | |
|
40125
a7acc7b00d79
Replace purple_str_has_{prefix,suffix} by g_str_has_{prefix,suffix}.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39921
diff
changeset
|
1102 | if (!g_str_has_prefix(gplugin_plugin_info_get_id(info), "keyring-")) { |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1103 | continue; |
|
39834
0345d198dbd6
Remove redundant purple_plugin_info_get_* wrappers.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
39464
diff
changeset
|
1104 | } |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1105 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1106 | if (purple_plugin_is_loaded(plugin)) |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1107 | continue; |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1108 | |
| 37065 | 1109 | if (purple_plugin_load(plugin, NULL)) { |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1110 | purple_keyring_loaded_plugins = g_list_append( |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1111 | purple_keyring_loaded_plugins, plugin); |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1112 | } |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1113 | } |
|
36430
559d5d9d8a6c
Refactored the codebase to remove purple_plugins_free_found_list()
Ankit Vani <a@nevitus.org>
parents:
36401
diff
changeset
|
1114 | g_list_free(plugins); |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1115 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1116 | if (purple_keyring_inuse == NULL) |
|
34168
449a39c8e26f
keyring.c refactoring: finish it
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34167
diff
changeset
|
1117 | purple_debug_error("keyring", "Selected keyring failed to load\n"); |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1118 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1119 | purple_signal_connect(purple_get_core(), "core-initialized", |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1120 | purple_keyring_get_handle(), |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1121 | PURPLE_CALLBACK(purple_keyring_core_initialized_cb), NULL); |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1122 | purple_signal_connect(purple_get_core(), "quitting", |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1123 | purple_keyring_get_handle(), |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1124 | PURPLE_CALLBACK(purple_keyring_core_quitting_cb), NULL); |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1125 | } |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1126 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1127 | void |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1128 | purple_keyring_uninit(void) |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1129 | { |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1130 | GList *it; |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1131 | |
|
34168
449a39c8e26f
keyring.c refactoring: finish it
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34167
diff
changeset
|
1132 | purple_keyring_pref_disconnect(); |
|
449a39c8e26f
keyring.c refactoring: finish it
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34167
diff
changeset
|
1133 | |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1134 | g_free(purple_keyring_to_use); |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1135 | purple_keyring_inuse = NULL; |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1136 | |
|
34168
449a39c8e26f
keyring.c refactoring: finish it
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34167
diff
changeset
|
1137 | g_hash_table_destroy(purple_keyring_failed_imports); |
|
449a39c8e26f
keyring.c refactoring: finish it
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34167
diff
changeset
|
1138 | purple_keyring_failed_imports = NULL; |
|
449a39c8e26f
keyring.c refactoring: finish it
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34167
diff
changeset
|
1139 | |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1140 | for (it = g_list_first(purple_keyring_loaded_plugins); it != NULL; |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1141 | it = g_list_next(it)) |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1142 | { |
|
36431
ea007725fd4d
Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents:
36430
diff
changeset
|
1143 | PurplePlugin *plugin = PURPLE_PLUGIN(it->data); |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1144 | if (g_list_find(purple_plugins_get_loaded(), plugin) == NULL) |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1145 | continue; |
|
36509
86e882c3cfdf
Refactored libpurple according to the changes
Ankit Vani <a@nevitus.org>
parents:
36449
diff
changeset
|
1146 | purple_plugin_unload(plugin, NULL); |
|
34159
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1147 | } |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1148 | g_list_free(purple_keyring_loaded_plugins); |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1149 | purple_keyring_loaded_plugins = NULL; |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1150 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1151 | purple_signals_unregister_by_instance(purple_keyring_get_handle()); |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1152 | purple_signals_disconnect_by_handle(purple_keyring_get_handle()); |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1153 | } |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1154 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1155 | void * |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1156 | purple_keyring_get_handle(void) |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1157 | { |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1158 | static int handle; |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1159 | |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1160 | return &handle; |
|
c47b85d03439
keyring.c refactoring - order up function implementations
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
34158
diff
changeset
|
1161 | } |
|
34819
727f35cfde65
Added a boxed type for PurpleKeyring. Refactored keyring to use GType instead of PurpleValue.
Ankit Vani <a@nevitus.org>
parents:
34199
diff
changeset
|
1162 | |
|
727f35cfde65
Added a boxed type for PurpleKeyring. Refactored keyring to use GType instead of PurpleValue.
Ankit Vani <a@nevitus.org>
parents:
34199
diff
changeset
|
1163 | static PurpleKeyring * |
|
727f35cfde65
Added a boxed type for PurpleKeyring. Refactored keyring to use GType instead of PurpleValue.
Ankit Vani <a@nevitus.org>
parents:
34199
diff
changeset
|
1164 | purple_keyring_copy(PurpleKeyring *keyring) |
|
727f35cfde65
Added a boxed type for PurpleKeyring. Refactored keyring to use GType instead of PurpleValue.
Ankit Vani <a@nevitus.org>
parents:
34199
diff
changeset
|
1165 | { |
|
727f35cfde65
Added a boxed type for PurpleKeyring. Refactored keyring to use GType instead of PurpleValue.
Ankit Vani <a@nevitus.org>
parents:
34199
diff
changeset
|
1166 | PurpleKeyring *keyring_copy; |
|
727f35cfde65
Added a boxed type for PurpleKeyring. Refactored keyring to use GType instead of PurpleValue.
Ankit Vani <a@nevitus.org>
parents:
34199
diff
changeset
|
1167 | |
|
727f35cfde65
Added a boxed type for PurpleKeyring. Refactored keyring to use GType instead of PurpleValue.
Ankit Vani <a@nevitus.org>
parents:
34199
diff
changeset
|
1168 | g_return_val_if_fail(keyring != NULL, NULL); |
|
727f35cfde65
Added a boxed type for PurpleKeyring. Refactored keyring to use GType instead of PurpleValue.
Ankit Vani <a@nevitus.org>
parents:
34199
diff
changeset
|
1169 | |
|
727f35cfde65
Added a boxed type for PurpleKeyring. Refactored keyring to use GType instead of PurpleValue.
Ankit Vani <a@nevitus.org>
parents:
34199
diff
changeset
|
1170 | keyring_copy = purple_keyring_new(); |
|
727f35cfde65
Added a boxed type for PurpleKeyring. Refactored keyring to use GType instead of PurpleValue.
Ankit Vani <a@nevitus.org>
parents:
34199
diff
changeset
|
1171 | *keyring_copy = *keyring; |
|
727f35cfde65
Added a boxed type for PurpleKeyring. Refactored keyring to use GType instead of PurpleValue.
Ankit Vani <a@nevitus.org>
parents:
34199
diff
changeset
|
1172 | |
|
727f35cfde65
Added a boxed type for PurpleKeyring. Refactored keyring to use GType instead of PurpleValue.
Ankit Vani <a@nevitus.org>
parents:
34199
diff
changeset
|
1173 | keyring_copy->name = g_strdup(keyring->name); |
|
727f35cfde65
Added a boxed type for PurpleKeyring. Refactored keyring to use GType instead of PurpleValue.
Ankit Vani <a@nevitus.org>
parents:
34199
diff
changeset
|
1174 | keyring_copy->id = g_strdup(keyring->id); |
|
727f35cfde65
Added a boxed type for PurpleKeyring. Refactored keyring to use GType instead of PurpleValue.
Ankit Vani <a@nevitus.org>
parents:
34199
diff
changeset
|
1175 | |
|
727f35cfde65
Added a boxed type for PurpleKeyring. Refactored keyring to use GType instead of PurpleValue.
Ankit Vani <a@nevitus.org>
parents:
34199
diff
changeset
|
1176 | return keyring_copy; |
|
727f35cfde65
Added a boxed type for PurpleKeyring. Refactored keyring to use GType instead of PurpleValue.
Ankit Vani <a@nevitus.org>
parents:
34199
diff
changeset
|
1177 | } |
|
727f35cfde65
Added a boxed type for PurpleKeyring. Refactored keyring to use GType instead of PurpleValue.
Ankit Vani <a@nevitus.org>
parents:
34199
diff
changeset
|
1178 | |
|
727f35cfde65
Added a boxed type for PurpleKeyring. Refactored keyring to use GType instead of PurpleValue.
Ankit Vani <a@nevitus.org>
parents:
34199
diff
changeset
|
1179 | GType |
|
727f35cfde65
Added a boxed type for PurpleKeyring. Refactored keyring to use GType instead of PurpleValue.
Ankit Vani <a@nevitus.org>
parents:
34199
diff
changeset
|
1180 | purple_keyring_get_type(void) |
|
727f35cfde65
Added a boxed type for PurpleKeyring. Refactored keyring to use GType instead of PurpleValue.
Ankit Vani <a@nevitus.org>
parents:
34199
diff
changeset
|
1181 | { |
|
727f35cfde65
Added a boxed type for PurpleKeyring. Refactored keyring to use GType instead of PurpleValue.
Ankit Vani <a@nevitus.org>
parents:
34199
diff
changeset
|
1182 | static GType type = 0; |
|
727f35cfde65
Added a boxed type for PurpleKeyring. Refactored keyring to use GType instead of PurpleValue.
Ankit Vani <a@nevitus.org>
parents:
34199
diff
changeset
|
1183 | |
|
727f35cfde65
Added a boxed type for PurpleKeyring. Refactored keyring to use GType instead of PurpleValue.
Ankit Vani <a@nevitus.org>
parents:
34199
diff
changeset
|
1184 | if (type == 0) { |
|
727f35cfde65
Added a boxed type for PurpleKeyring. Refactored keyring to use GType instead of PurpleValue.
Ankit Vani <a@nevitus.org>
parents:
34199
diff
changeset
|
1185 | type = g_boxed_type_register_static("PurpleKeyring", |
|
727f35cfde65
Added a boxed type for PurpleKeyring. Refactored keyring to use GType instead of PurpleValue.
Ankit Vani <a@nevitus.org>
parents:
34199
diff
changeset
|
1186 | (GBoxedCopyFunc)purple_keyring_copy, |
|
727f35cfde65
Added a boxed type for PurpleKeyring. Refactored keyring to use GType instead of PurpleValue.
Ankit Vani <a@nevitus.org>
parents:
34199
diff
changeset
|
1187 | (GBoxedFreeFunc)purple_keyring_free); |
|
727f35cfde65
Added a boxed type for PurpleKeyring. Refactored keyring to use GType instead of PurpleValue.
Ankit Vani <a@nevitus.org>
parents:
34199
diff
changeset
|
1188 | } |
|
727f35cfde65
Added a boxed type for PurpleKeyring. Refactored keyring to use GType instead of PurpleValue.
Ankit Vani <a@nevitus.org>
parents:
34199
diff
changeset
|
1189 | |
|
727f35cfde65
Added a boxed type for PurpleKeyring. Refactored keyring to use GType instead of PurpleValue.
Ankit Vani <a@nevitus.org>
parents:
34199
diff
changeset
|
1190 | return type; |
|
727f35cfde65
Added a boxed type for PurpleKeyring. Refactored keyring to use GType instead of PurpleValue.
Ankit Vani <a@nevitus.org>
parents:
34199
diff
changeset
|
1191 | } |