Mercurial > pidgin.yaz
annotate pidgin/gtkcertmgr.c @ 29384:ad4960c2df28
Good call, this doesn't need to be translated. This messaged used to be
shown to users, but now that we throttle outgoing messages to avoid
hitting the rate limit, we don't bother showing this for some reason.
I think it was annoying people and causing confusion. But it really
should happen rarely if ever, so I think it's safe to keep it as a debug
message and not translate it.
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Sun, 07 Feb 2010 08:31:41 +0000 |
parents | f1437342cc0e |
children | 917c597beb97 |
rev | line source |
---|---|
19015
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff
changeset
|
1 /* |
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff
changeset
|
2 * @file gtkcertmgr.c GTK+ Certificate Manager API |
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff
changeset
|
3 * @ingroup pidgin |
20074
6bf32c9e15a7
remove gpl boilerplate from doxygen docs
Sean Egan <seanegan@gmail.com>
parents:
19986
diff
changeset
|
4 */ |
6bf32c9e15a7
remove gpl boilerplate from doxygen docs
Sean Egan <seanegan@gmail.com>
parents:
19986
diff
changeset
|
5 |
6bf32c9e15a7
remove gpl boilerplate from doxygen docs
Sean Egan <seanegan@gmail.com>
parents:
19986
diff
changeset
|
6 /* pidgin |
19015
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff
changeset
|
7 * |
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff
changeset
|
8 * Pidgin is the legal property of its developers, whose names are too numerous |
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff
changeset
|
9 * to list here. Please refer to the COPYRIGHT file distributed with this |
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff
changeset
|
10 * source distribution. |
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff
changeset
|
11 * |
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff
changeset
|
12 * This program is free software; you can redistribute it and/or modify |
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff
changeset
|
13 * it under the terms of the GNU General Public License as published by |
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff
changeset
|
14 * the Free Software Foundation; either version 2 of the License, or |
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff
changeset
|
15 * (at your option) any later version. |
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff
changeset
|
16 * |
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff
changeset
|
17 * This program is distributed in the hope that it will be useful, |
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff
changeset
|
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff
changeset
|
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff
changeset
|
20 * GNU General Public License for more details. |
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff
changeset
|
21 * |
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff
changeset
|
22 * You should have received a copy of the GNU General Public License |
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff
changeset
|
23 * along with this program; if not, write to the Free Software |
19680
44b4e8bd759b
The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
19650
diff
changeset
|
24 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
19015
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff
changeset
|
25 * |
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff
changeset
|
26 */ |
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff
changeset
|
27 |
29028
f1437342cc0e
Include 'internal.h' before all other headers to make some non-gcc compilers happy.
Paul Aurich <paul@darkrain42.org>
parents:
28265
diff
changeset
|
28 #include "internal.h" |
19031
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
29 #include "core.h" |
19015
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff
changeset
|
30 #include "pidgin.h" |
19503
2f0960548c1d
Make the gtkcert stuff compile on GTK+ older than 2.8
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19270
diff
changeset
|
31 #include "pidginstock.h" |
19015
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff
changeset
|
32 |
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff
changeset
|
33 #include "certificate.h" |
19029
3f929a770f1b
- Add debug code to spit a list of all certificates in all pools when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19015
diff
changeset
|
34 #include "debug.h" |
19015
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff
changeset
|
35 #include "notify.h" |
19062
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
36 #include "request.h" |
19015
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff
changeset
|
37 |
19031
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
38 #include "gtkblist.h" |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
39 #include "gtkutils.h" |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
40 |
19015
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff
changeset
|
41 #include "gtkcertmgr.h" |
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff
changeset
|
42 |
19035
284199d26040
- Comment cosmetics
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19032
diff
changeset
|
43 /***************************************************************************** |
19038
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
44 * X.509 tls_peers management interface * |
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
45 *****************************************************************************/ |
19039
3054f7c6b30d
- Add logic to allow tls_peers manager to properly uninit itself when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19038
diff
changeset
|
46 |
19052
78f185af7952
- Add a struct to hold various pieces of data for the tls_peers mgmt UI
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19043
diff
changeset
|
47 typedef struct { |
78f185af7952
- Add a struct to hold various pieces of data for the tls_peers mgmt UI
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19043
diff
changeset
|
48 GtkWidget *mgmt_widget; |
78f185af7952
- Add a struct to hold various pieces of data for the tls_peers mgmt UI
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19043
diff
changeset
|
49 GtkTreeView *listview; |
19054
ffeb39523eb6
- Make the tls_peers certmgr delete button do something
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19053
diff
changeset
|
50 GtkTreeSelection *listselect; |
19052
78f185af7952
- Add a struct to hold various pieces of data for the tls_peers mgmt UI
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19043
diff
changeset
|
51 GtkWidget *importbutton; |
78f185af7952
- Add a struct to hold various pieces of data for the tls_peers mgmt UI
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19043
diff
changeset
|
52 GtkWidget *exportbutton; |
78f185af7952
- Add a struct to hold various pieces of data for the tls_peers mgmt UI
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19043
diff
changeset
|
53 GtkWidget *infobutton; |
78f185af7952
- Add a struct to hold various pieces of data for the tls_peers mgmt UI
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19043
diff
changeset
|
54 GtkWidget *deletebutton; |
19053
95a8469cd1e3
- tls_peers certmgr now responds to certificate-stored,
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19052
diff
changeset
|
55 PurpleCertificatePool *tls_peers; |
19052
78f185af7952
- Add a struct to hold various pieces of data for the tls_peers mgmt UI
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19043
diff
changeset
|
56 } tls_peers_mgmt_data; |
78f185af7952
- Add a struct to hold various pieces of data for the tls_peers mgmt UI
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19043
diff
changeset
|
57 |
78f185af7952
- Add a struct to hold various pieces of data for the tls_peers mgmt UI
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19043
diff
changeset
|
58 tls_peers_mgmt_data *tpm_dat = NULL; |
78f185af7952
- Add a struct to hold various pieces of data for the tls_peers mgmt UI
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19043
diff
changeset
|
59 |
19041
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
60 /* Columns |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
61 See http://developer.gnome.org/doc/API/2.0/gtk/TreeWidget.html */ |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
62 enum |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
63 { |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
64 TPM_HOSTNAME_COLUMN, |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
65 TPM_N_COLUMNS |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
66 }; |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
67 |
19039
3054f7c6b30d
- Add logic to allow tls_peers manager to properly uninit itself when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19038
diff
changeset
|
68 static void |
3054f7c6b30d
- Add logic to allow tls_peers manager to properly uninit itself when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19038
diff
changeset
|
69 tls_peers_mgmt_destroy(GtkWidget *mgmt_widget, gpointer data) |
3054f7c6b30d
- Add logic to allow tls_peers manager to properly uninit itself when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19038
diff
changeset
|
70 { |
3054f7c6b30d
- Add logic to allow tls_peers manager to properly uninit itself when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19038
diff
changeset
|
71 purple_debug_info("certmgr", |
3054f7c6b30d
- Add logic to allow tls_peers manager to properly uninit itself when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19038
diff
changeset
|
72 "tls peers self-destructs\n"); |
19052
78f185af7952
- Add a struct to hold various pieces of data for the tls_peers mgmt UI
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19043
diff
changeset
|
73 |
19053
95a8469cd1e3
- tls_peers certmgr now responds to certificate-stored,
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19052
diff
changeset
|
74 purple_signals_disconnect_by_handle(tpm_dat); |
19062
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
75 purple_request_close_with_handle(tpm_dat); |
19052
78f185af7952
- Add a struct to hold various pieces of data for the tls_peers mgmt UI
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19043
diff
changeset
|
76 g_free(tpm_dat); tpm_dat = NULL; |
19039
3054f7c6b30d
- Add logic to allow tls_peers manager to properly uninit itself when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19038
diff
changeset
|
77 } |
3054f7c6b30d
- Add logic to allow tls_peers manager to properly uninit itself when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19038
diff
changeset
|
78 |
19042
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
79 static void |
19052
78f185af7952
- Add a struct to hold various pieces of data for the tls_peers mgmt UI
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19043
diff
changeset
|
80 tls_peers_mgmt_repopulate_list(void) |
19042
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
81 { |
19052
78f185af7952
- Add a struct to hold various pieces of data for the tls_peers mgmt UI
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19043
diff
changeset
|
82 GtkTreeView *listview = tpm_dat->listview; |
19042
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
83 PurpleCertificatePool *tls_peers; |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
84 GList *idlist, *l; |
22240
71e27bc2e82b
Remove whitespace on empty lions
Mark Doliner <mark@kingant.net>
parents:
22143
diff
changeset
|
85 |
19042
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
86 GtkListStore *store = GTK_LIST_STORE( |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
87 gtk_tree_view_get_model(GTK_TREE_VIEW(listview))); |
22240
71e27bc2e82b
Remove whitespace on empty lions
Mark Doliner <mark@kingant.net>
parents:
22143
diff
changeset
|
88 |
19042
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
89 /* First, delete everything in the list */ |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
90 gtk_list_store_clear(store); |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
91 |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
92 /* Locate the "tls_peers" pool */ |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
93 tls_peers = purple_certificate_find_pool("x509", "tls_peers"); |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
94 g_return_if_fail(tls_peers); |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
95 |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
96 /* Grab the loaded certificates */ |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
97 idlist = purple_certificate_pool_get_idlist(tls_peers); |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
98 |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
99 /* Populate the listview */ |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
100 for (l = idlist; l; l = l->next) { |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
101 GtkTreeIter iter; |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
102 gtk_list_store_append(store, &iter); |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
103 |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
104 gtk_list_store_set(GTK_LIST_STORE(store), &iter, |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
105 TPM_HOSTNAME_COLUMN, l->data, |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
106 -1); |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
107 } |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
108 purple_certificate_pool_destroy_idlist(idlist); |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
109 } |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
110 |
19053
95a8469cd1e3
- tls_peers certmgr now responds to certificate-stored,
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19052
diff
changeset
|
111 static void |
95a8469cd1e3
- tls_peers certmgr now responds to certificate-stored,
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19052
diff
changeset
|
112 tls_peers_mgmt_mod_cb(PurpleCertificatePool *pool, const gchar *id, gpointer data) |
95a8469cd1e3
- tls_peers certmgr now responds to certificate-stored,
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19052
diff
changeset
|
113 { |
95a8469cd1e3
- tls_peers certmgr now responds to certificate-stored,
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19052
diff
changeset
|
114 g_assert (pool == tpm_dat->tls_peers); |
95a8469cd1e3
- tls_peers certmgr now responds to certificate-stored,
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19052
diff
changeset
|
115 |
95a8469cd1e3
- tls_peers certmgr now responds to certificate-stored,
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19052
diff
changeset
|
116 tls_peers_mgmt_repopulate_list(); |
95a8469cd1e3
- tls_peers certmgr now responds to certificate-stored,
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19052
diff
changeset
|
117 } |
95a8469cd1e3
- tls_peers certmgr now responds to certificate-stored,
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19052
diff
changeset
|
118 |
19054
ffeb39523eb6
- Make the tls_peers certmgr delete button do something
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19053
diff
changeset
|
119 static void |
19056
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
120 tls_peers_mgmt_select_chg_cb(GtkTreeSelection *ignored, gpointer data) |
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
121 { |
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
122 GtkTreeSelection *select = tpm_dat->listselect; |
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
123 GtkTreeIter iter; |
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
124 GtkTreeModel *model; |
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
125 |
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
126 /* See if things are selected */ |
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
127 if (gtk_tree_selection_get_selected(select, &model, &iter)) { |
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
128 /* Enable buttons if something is selected */ |
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
129 gtk_widget_set_sensitive(GTK_WIDGET(tpm_dat->exportbutton), TRUE); |
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
130 gtk_widget_set_sensitive(GTK_WIDGET(tpm_dat->infobutton), TRUE); |
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
131 gtk_widget_set_sensitive(GTK_WIDGET(tpm_dat->deletebutton), TRUE); |
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
132 } else { |
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
133 /* Otherwise, disable them */ |
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
134 gtk_widget_set_sensitive(GTK_WIDGET(tpm_dat->exportbutton), FALSE); |
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
135 gtk_widget_set_sensitive(GTK_WIDGET(tpm_dat->infobutton), FALSE); |
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
136 gtk_widget_set_sensitive(GTK_WIDGET(tpm_dat->deletebutton), FALSE); |
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
137 |
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
138 } |
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
139 } |
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
140 |
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
141 static void |
19062
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
142 tls_peers_mgmt_import_ok2_cb(gpointer data, const char *result) |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
143 { |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
144 PurpleCertificate *crt = (PurpleCertificate *) data; |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
145 |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
146 /* TODO: Perhaps prompt if you're overwriting a cert? */ |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
147 |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
148 /* Drop the certificate into the pool */ |
28265
0db08d748475
Don't try to write a cert with a blank filename.
Paul Aurich <paul@darkrain42.org>
parents:
27366
diff
changeset
|
149 if (result && *result) |
0db08d748475
Don't try to write a cert with a blank filename.
Paul Aurich <paul@darkrain42.org>
parents:
27366
diff
changeset
|
150 purple_certificate_pool_store(tpm_dat->tls_peers, result, crt); |
19062
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
151 |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
152 /* And this certificate is not needed any more */ |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
153 purple_certificate_destroy(crt); |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
154 } |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
155 |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
156 static void |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
157 tls_peers_mgmt_import_cancel2_cb(gpointer data, const char *result) |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
158 { |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
159 PurpleCertificate *crt = (PurpleCertificate *) data; |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
160 purple_certificate_destroy(crt); |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
161 } |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
162 |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
163 static void |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
164 tls_peers_mgmt_import_ok_cb(gpointer data, const char *filename) |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
165 { |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
166 PurpleCertificateScheme *x509; |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
167 PurpleCertificate *crt; |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
168 |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
169 /* Load the scheme of our tls_peers pool (ought to be x509) */ |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
170 x509 = purple_certificate_pool_get_scheme(tpm_dat->tls_peers); |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
171 |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
172 /* Now load the certificate from disk */ |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
173 crt = purple_certificate_import(x509, filename); |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
174 |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
175 /* Did it work? */ |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
176 if (crt != NULL) { |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
177 gchar *default_hostname; |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
178 /* Get name to add to pool as */ |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
179 /* Make a guess about what the hostname should be */ |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
180 default_hostname = purple_certificate_get_subject_name(crt); |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
181 /* TODO: Find a way to make sure that crt gets destroyed |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
182 if the window gets closed unusually, such as by handle |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
183 deletion */ |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
184 /* TODO: Display some more information on the certificate? */ |
21099
51cf02dbdb0e
disapproval of revision 'c484d979c4fda4433a9633ff8b69bd8a395c9479'
Richard Laager <rlaager@wiktel.com>
parents:
21095
diff
changeset
|
185 purple_request_input(tpm_dat, |
19062
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
186 _("Certificate Import"), |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
187 _("Specify a hostname"), |
27366
73c8e1964eef
A semi-random collection of English spelling and grammatical changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
22257
diff
changeset
|
188 _("Type the host name for this certificate."), |
19062
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
189 default_hostname, |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
190 FALSE, /* Not multiline */ |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
191 FALSE, /* Not masked? */ |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
192 NULL, /* No hints? */ |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
193 _("OK"), |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
194 G_CALLBACK(tls_peers_mgmt_import_ok2_cb), |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
195 _("Cancel"), |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
196 G_CALLBACK(tls_peers_mgmt_import_cancel2_cb), |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
197 NULL, NULL, NULL, /* No account/who/conv*/ |
21099
51cf02dbdb0e
disapproval of revision 'c484d979c4fda4433a9633ff8b69bd8a395c9479'
Richard Laager <rlaager@wiktel.com>
parents:
21095
diff
changeset
|
198 crt /* Pass cert instance to callback*/ |
19062
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
199 ); |
22240
71e27bc2e82b
Remove whitespace on empty lions
Mark Doliner <mark@kingant.net>
parents:
22143
diff
changeset
|
200 |
19062
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
201 g_free(default_hostname); |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
202 } else { |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
203 /* Errors! Oh no! */ |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
204 /* TODO: Perhaps find a way to be specific about what just |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
205 went wrong? */ |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
206 gchar * secondary; |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
207 |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
208 secondary = g_strdup_printf(_("File %s could not be imported.\nMake sure that the file is readable and in PEM format.\n"), filename); |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
209 purple_notify_error(NULL, |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
210 _("Certificate Import Error"), |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
211 _("X.509 certificate import failed"), |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
212 secondary); |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
213 g_free(secondary); |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
214 } |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
215 } |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
216 |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
217 static void |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
218 tls_peers_mgmt_import_cb(GtkWidget *button, gpointer data) |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
219 { |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
220 /* TODO: need to tell the user that we want a .PEM file! */ |
21099
51cf02dbdb0e
disapproval of revision 'c484d979c4fda4433a9633ff8b69bd8a395c9479'
Richard Laager <rlaager@wiktel.com>
parents:
21095
diff
changeset
|
221 purple_request_file(tpm_dat, |
19062
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
222 _("Select a PEM certificate"), |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
223 "certificate.pem", |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
224 FALSE, /* Not a save dialog */ |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
225 G_CALLBACK(tls_peers_mgmt_import_ok_cb), |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
226 NULL, /* Do nothing if cancelled */ |
21099
51cf02dbdb0e
disapproval of revision 'c484d979c4fda4433a9633ff8b69bd8a395c9479'
Richard Laager <rlaager@wiktel.com>
parents:
21095
diff
changeset
|
227 NULL, NULL, NULL, NULL );/* No account,conv,etc. */ |
19062
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
228 } |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
229 |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
230 static void |
19064
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
231 tls_peers_mgmt_export_ok_cb(gpointer data, const char *filename) |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
232 { |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
233 PurpleCertificate *crt = (PurpleCertificate *) data; |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
234 |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
235 g_assert(filename); |
22240
71e27bc2e82b
Remove whitespace on empty lions
Mark Doliner <mark@kingant.net>
parents:
22143
diff
changeset
|
236 |
19064
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
237 if (!purple_certificate_export(filename, crt)) { |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
238 /* Errors! Oh no! */ |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
239 /* TODO: Perhaps find a way to be specific about what just |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
240 went wrong? */ |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
241 gchar * secondary; |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
242 |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
243 secondary = g_strdup_printf(_("Export to file %s failed.\nCheck that you have write permission to the target path\n"), filename); |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
244 purple_notify_error(NULL, |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
245 _("Certificate Export Error"), |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
246 _("X.509 certificate export failed"), |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
247 secondary); |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
248 g_free(secondary); |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
249 } |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
250 |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
251 purple_certificate_destroy(crt); |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
252 } |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
253 |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
254 static void |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
255 tls_peers_mgmt_export_cancel_cb(gpointer data, const char *filename) |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
256 { |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
257 PurpleCertificate *crt = (PurpleCertificate *) data; |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
258 /* Pressing cancel just frees the duplicated certificate */ |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
259 purple_certificate_destroy(crt); |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
260 } |
22240
71e27bc2e82b
Remove whitespace on empty lions
Mark Doliner <mark@kingant.net>
parents:
22143
diff
changeset
|
261 |
19064
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
262 static void |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
263 tls_peers_mgmt_export_cb(GtkWidget *button, gpointer data) |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
264 { |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
265 PurpleCertificate *crt; |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
266 GtkTreeSelection *select = tpm_dat->listselect; |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
267 GtkTreeIter iter; |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
268 GtkTreeModel *model; |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
269 gchar *id; |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
270 |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
271 /* See if things are selected */ |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
272 if (!gtk_tree_selection_get_selected(select, &model, &iter)) { |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
273 purple_debug_warning("gtkcertmgr/tls_peers_mgmt", |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
274 "Export clicked with no selection?\n"); |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
275 return; |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
276 } |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
277 |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
278 /* Retrieve the selected hostname */ |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
279 gtk_tree_model_get(model, &iter, TPM_HOSTNAME_COLUMN, &id, -1); |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
280 |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
281 /* Extract the certificate from the pool now to make sure it doesn't |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
282 get deleted out from under us */ |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
283 crt = purple_certificate_pool_retrieve(tpm_dat->tls_peers, id); |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
284 |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
285 if (NULL == crt) { |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
286 purple_debug_error("gtkcertmgr/tls_peers_mgmt", |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
287 "Id %s was not in the peers cache?!\n", |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
288 id); |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
289 g_free(id); |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
290 return; |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
291 } |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
292 g_free(id); |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
293 |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
294 /* TODO: inform user that it will be a PEM? */ |
21099
51cf02dbdb0e
disapproval of revision 'c484d979c4fda4433a9633ff8b69bd8a395c9479'
Richard Laager <rlaager@wiktel.com>
parents:
21095
diff
changeset
|
295 purple_request_file(tpm_dat, |
19064
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
296 _("PEM X.509 Certificate Export"), |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
297 "certificate.pem", |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
298 TRUE, /* Is a save dialog */ |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
299 G_CALLBACK(tls_peers_mgmt_export_ok_cb), |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
300 G_CALLBACK(tls_peers_mgmt_export_cancel_cb), |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
301 NULL, NULL, NULL, /* No account,conv,etc. */ |
21099
51cf02dbdb0e
disapproval of revision 'c484d979c4fda4433a9633ff8b69bd8a395c9479'
Richard Laager <rlaager@wiktel.com>
parents:
21095
diff
changeset
|
302 crt); /* Pass the certificate on to the callback */ |
19064
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
303 } |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
304 |
19065
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
305 static void |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
306 tls_peers_mgmt_info_cb(GtkWidget *button, gpointer data) |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
307 { |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
308 GtkTreeSelection *select = tpm_dat->listselect; |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
309 GtkTreeIter iter; |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
310 GtkTreeModel *model; |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
311 gchar *id; |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
312 PurpleCertificate *crt; |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
313 |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
314 /* See if things are selected */ |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
315 if (!gtk_tree_selection_get_selected(select, &model, &iter)) { |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
316 purple_debug_warning("gtkcertmgr/tls_peers_mgmt", |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
317 "Info clicked with no selection?\n"); |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
318 return; |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
319 } |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
320 |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
321 /* Retrieve the selected hostname */ |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
322 gtk_tree_model_get(model, &iter, TPM_HOSTNAME_COLUMN, &id, -1); |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
323 |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
324 /* Now retrieve the certificate */ |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
325 crt = purple_certificate_pool_retrieve(tpm_dat->tls_peers, id); |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
326 g_return_if_fail(crt); |
22240
71e27bc2e82b
Remove whitespace on empty lions
Mark Doliner <mark@kingant.net>
parents:
22143
diff
changeset
|
327 |
19986
4840b100e14f
- GTKCertMgr X.509 infothing now uses the
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19680
diff
changeset
|
328 /* Fire the notification */ |
4840b100e14f
- GTKCertMgr X.509 infothing now uses the
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19680
diff
changeset
|
329 purple_certificate_display_x509(crt); |
22240
71e27bc2e82b
Remove whitespace on empty lions
Mark Doliner <mark@kingant.net>
parents:
22143
diff
changeset
|
330 |
19065
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
331 g_free(id); |
19219
8828d7aec7b6
- Fix a memleak
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19066
diff
changeset
|
332 purple_certificate_destroy(crt); |
19065
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
333 } |
19064
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
334 |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
335 static void |
19066
b631b409a515
- Make tls_peers_mgmt delete button prompt for yes/no before removing
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19065
diff
changeset
|
336 tls_peers_mgmt_delete_confirm_cb(gchar *id, gint choice) |
b631b409a515
- Make tls_peers_mgmt delete button prompt for yes/no before removing
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19065
diff
changeset
|
337 { |
b631b409a515
- Make tls_peers_mgmt delete button prompt for yes/no before removing
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19065
diff
changeset
|
338 if (1 == choice) { |
b631b409a515
- Make tls_peers_mgmt delete button prompt for yes/no before removing
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19065
diff
changeset
|
339 /* Yes, delete was confirmed */ |
b631b409a515
- Make tls_peers_mgmt delete button prompt for yes/no before removing
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19065
diff
changeset
|
340 /* Now delete the thing */ |
19270
fb4a1fb9ce8a
- Fix some overzealous g_asserts leading to a crash
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19219
diff
changeset
|
341 if (!purple_certificate_pool_delete(tpm_dat->tls_peers, id)) { |
fb4a1fb9ce8a
- Fix some overzealous g_asserts leading to a crash
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19219
diff
changeset
|
342 purple_debug_warning("gtkcertmgr/tls_peers_mgmt", |
fb4a1fb9ce8a
- Fix some overzealous g_asserts leading to a crash
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19219
diff
changeset
|
343 "Deletion failed on id %s\n", |
fb4a1fb9ce8a
- Fix some overzealous g_asserts leading to a crash
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19219
diff
changeset
|
344 id); |
fb4a1fb9ce8a
- Fix some overzealous g_asserts leading to a crash
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19219
diff
changeset
|
345 }; |
19066
b631b409a515
- Make tls_peers_mgmt delete button prompt for yes/no before removing
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19065
diff
changeset
|
346 } |
b631b409a515
- Make tls_peers_mgmt delete button prompt for yes/no before removing
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19065
diff
changeset
|
347 |
b631b409a515
- Make tls_peers_mgmt delete button prompt for yes/no before removing
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19065
diff
changeset
|
348 g_free(id); |
b631b409a515
- Make tls_peers_mgmt delete button prompt for yes/no before removing
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19065
diff
changeset
|
349 } |
22240
71e27bc2e82b
Remove whitespace on empty lions
Mark Doliner <mark@kingant.net>
parents:
22143
diff
changeset
|
350 |
19066
b631b409a515
- Make tls_peers_mgmt delete button prompt for yes/no before removing
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19065
diff
changeset
|
351 static void |
19054
ffeb39523eb6
- Make the tls_peers certmgr delete button do something
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19053
diff
changeset
|
352 tls_peers_mgmt_delete_cb(GtkWidget *button, gpointer data) |
ffeb39523eb6
- Make the tls_peers certmgr delete button do something
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19053
diff
changeset
|
353 { |
ffeb39523eb6
- Make the tls_peers certmgr delete button do something
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19053
diff
changeset
|
354 GtkTreeSelection *select = tpm_dat->listselect; |
ffeb39523eb6
- Make the tls_peers certmgr delete button do something
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19053
diff
changeset
|
355 GtkTreeIter iter; |
ffeb39523eb6
- Make the tls_peers certmgr delete button do something
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19053
diff
changeset
|
356 GtkTreeModel *model; |
ffeb39523eb6
- Make the tls_peers certmgr delete button do something
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19053
diff
changeset
|
357 |
ffeb39523eb6
- Make the tls_peers certmgr delete button do something
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19053
diff
changeset
|
358 /* See if things are selected */ |
ffeb39523eb6
- Make the tls_peers certmgr delete button do something
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19053
diff
changeset
|
359 if (gtk_tree_selection_get_selected(select, &model, &iter)) { |
ffeb39523eb6
- Make the tls_peers certmgr delete button do something
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19053
diff
changeset
|
360 |
ffeb39523eb6
- Make the tls_peers certmgr delete button do something
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19053
diff
changeset
|
361 gchar *id; |
19066
b631b409a515
- Make tls_peers_mgmt delete button prompt for yes/no before removing
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19065
diff
changeset
|
362 gchar *primary; |
19054
ffeb39523eb6
- Make the tls_peers certmgr delete button do something
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19053
diff
changeset
|
363 |
ffeb39523eb6
- Make the tls_peers certmgr delete button do something
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19053
diff
changeset
|
364 /* Retrieve the selected hostname */ |
ffeb39523eb6
- Make the tls_peers certmgr delete button do something
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19053
diff
changeset
|
365 gtk_tree_model_get(model, &iter, TPM_HOSTNAME_COLUMN, &id, -1); |
ffeb39523eb6
- Make the tls_peers certmgr delete button do something
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19053
diff
changeset
|
366 |
19066
b631b409a515
- Make tls_peers_mgmt delete button prompt for yes/no before removing
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19065
diff
changeset
|
367 /* Prompt to confirm deletion */ |
b631b409a515
- Make tls_peers_mgmt delete button prompt for yes/no before removing
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19065
diff
changeset
|
368 primary = g_strdup_printf( |
b631b409a515
- Make tls_peers_mgmt delete button prompt for yes/no before removing
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19065
diff
changeset
|
369 _("Really delete certificate for %s?"), id ); |
22240
71e27bc2e82b
Remove whitespace on empty lions
Mark Doliner <mark@kingant.net>
parents:
22143
diff
changeset
|
370 |
21099
51cf02dbdb0e
disapproval of revision 'c484d979c4fda4433a9633ff8b69bd8a395c9479'
Richard Laager <rlaager@wiktel.com>
parents:
21095
diff
changeset
|
371 purple_request_yes_no(tpm_dat, _("Confirm certificate delete"), |
19066
b631b409a515
- Make tls_peers_mgmt delete button prompt for yes/no before removing
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19065
diff
changeset
|
372 primary, NULL, /* Can this be NULL? */ |
22257
8233bbcf3e86
The Gnome Human Interface Guidelines say, "if pressing this button by
Mark Doliner <mark@kingant.net>
parents:
22255
diff
changeset
|
373 0, /* "yes" is the default action */ |
19066
b631b409a515
- Make tls_peers_mgmt delete button prompt for yes/no before removing
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19065
diff
changeset
|
374 NULL, NULL, NULL, |
b631b409a515
- Make tls_peers_mgmt delete button prompt for yes/no before removing
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19065
diff
changeset
|
375 id, /* id ownership passed to callback */ |
b631b409a515
- Make tls_peers_mgmt delete button prompt for yes/no before removing
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19065
diff
changeset
|
376 tls_peers_mgmt_delete_confirm_cb, |
b631b409a515
- Make tls_peers_mgmt delete button prompt for yes/no before removing
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19065
diff
changeset
|
377 tls_peers_mgmt_delete_confirm_cb ); |
22240
71e27bc2e82b
Remove whitespace on empty lions
Mark Doliner <mark@kingant.net>
parents:
22143
diff
changeset
|
378 |
19066
b631b409a515
- Make tls_peers_mgmt delete button prompt for yes/no before removing
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19065
diff
changeset
|
379 g_free(primary); |
22240
71e27bc2e82b
Remove whitespace on empty lions
Mark Doliner <mark@kingant.net>
parents:
22143
diff
changeset
|
380 |
19054
ffeb39523eb6
- Make the tls_peers certmgr delete button do something
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19053
diff
changeset
|
381 } else { |
ffeb39523eb6
- Make the tls_peers certmgr delete button do something
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19053
diff
changeset
|
382 purple_debug_warning("gtkcertmgr/tls_peers_mgmt", |
ffeb39523eb6
- Make the tls_peers certmgr delete button do something
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19053
diff
changeset
|
383 "Delete clicked with no selection?\n"); |
ffeb39523eb6
- Make the tls_peers certmgr delete button do something
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19053
diff
changeset
|
384 return; |
ffeb39523eb6
- Make the tls_peers certmgr delete button do something
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19053
diff
changeset
|
385 } |
ffeb39523eb6
- Make the tls_peers certmgr delete button do something
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19053
diff
changeset
|
386 } |
ffeb39523eb6
- Make the tls_peers certmgr delete button do something
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19053
diff
changeset
|
387 |
19038
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
388 static GtkWidget * |
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
389 tls_peers_mgmt_build(void) |
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
390 { |
19041
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
391 GtkWidget *bbox; |
19052
78f185af7952
- Add a struct to hold various pieces of data for the tls_peers mgmt UI
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19043
diff
changeset
|
392 GtkListStore *store; |
22253
f5d132f52f2a
Add the list of certificates in Pidgin's certificate manager to a
Mark Doliner <mark@kingant.net>
parents:
22240
diff
changeset
|
393 GtkWidget *sw; |
19052
78f185af7952
- Add a struct to hold various pieces of data for the tls_peers mgmt UI
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19043
diff
changeset
|
394 |
78f185af7952
- Add a struct to hold various pieces of data for the tls_peers mgmt UI
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19043
diff
changeset
|
395 /* This block of variables will end up in tpm_dat */ |
78f185af7952
- Add a struct to hold various pieces of data for the tls_peers mgmt UI
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19043
diff
changeset
|
396 GtkTreeView *listview; |
19055
e5981fc8733f
- Code cosmetics
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19054
diff
changeset
|
397 GtkTreeSelection *select; |
19041
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
398 GtkWidget *importbutton; |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
399 GtkWidget *exportbutton; |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
400 GtkWidget *infobutton; |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
401 GtkWidget *deletebutton; |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
402 /** Element to return to the Certmgr window to put in the Notebook */ |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
403 GtkWidget *mgmt_widget; |
19052
78f185af7952
- Add a struct to hold various pieces of data for the tls_peers mgmt UI
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19043
diff
changeset
|
404 |
78f185af7952
- Add a struct to hold various pieces of data for the tls_peers mgmt UI
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19043
diff
changeset
|
405 /* Create a struct to store context information about this window */ |
78f185af7952
- Add a struct to hold various pieces of data for the tls_peers mgmt UI
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19043
diff
changeset
|
406 tpm_dat = g_new0(tls_peers_mgmt_data, 1); |
22240
71e27bc2e82b
Remove whitespace on empty lions
Mark Doliner <mark@kingant.net>
parents:
22143
diff
changeset
|
407 |
19052
78f185af7952
- Add a struct to hold various pieces of data for the tls_peers mgmt UI
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19043
diff
changeset
|
408 tpm_dat->mgmt_widget = mgmt_widget = |
78f185af7952
- Add a struct to hold various pieces of data for the tls_peers mgmt UI
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19043
diff
changeset
|
409 gtk_hbox_new(FALSE, /* Non-homogeneous */ |
22255 | 410 PIDGIN_HIG_BOX_SPACE); |
411 gtk_container_set_border_width(GTK_CONTAINER(mgmt_widget), | |
412 PIDGIN_HIG_BOX_SPACE); | |
19039
3054f7c6b30d
- Add logic to allow tls_peers manager to properly uninit itself when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19038
diff
changeset
|
413 gtk_widget_show(mgmt_widget); |
3054f7c6b30d
- Add logic to allow tls_peers manager to properly uninit itself when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19038
diff
changeset
|
414 |
3054f7c6b30d
- Add logic to allow tls_peers manager to properly uninit itself when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19038
diff
changeset
|
415 /* Ensure that everything gets cleaned up when the dialog box |
3054f7c6b30d
- Add logic to allow tls_peers manager to properly uninit itself when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19038
diff
changeset
|
416 is closed */ |
3054f7c6b30d
- Add logic to allow tls_peers manager to properly uninit itself when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19038
diff
changeset
|
417 g_signal_connect(G_OBJECT(mgmt_widget), "destroy", |
3054f7c6b30d
- Add logic to allow tls_peers manager to properly uninit itself when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19038
diff
changeset
|
418 G_CALLBACK(tls_peers_mgmt_destroy), NULL); |
19041
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
419 |
22253
f5d132f52f2a
Add the list of certificates in Pidgin's certificate manager to a
Mark Doliner <mark@kingant.net>
parents:
22240
diff
changeset
|
420 /* Scrolled window */ |
f5d132f52f2a
Add the list of certificates in Pidgin's certificate manager to a
Mark Doliner <mark@kingant.net>
parents:
22240
diff
changeset
|
421 sw = gtk_scrolled_window_new(NULL,NULL); |
f5d132f52f2a
Add the list of certificates in Pidgin's certificate manager to a
Mark Doliner <mark@kingant.net>
parents:
22240
diff
changeset
|
422 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), |
f5d132f52f2a
Add the list of certificates in Pidgin's certificate manager to a
Mark Doliner <mark@kingant.net>
parents:
22240
diff
changeset
|
423 GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); |
f5d132f52f2a
Add the list of certificates in Pidgin's certificate manager to a
Mark Doliner <mark@kingant.net>
parents:
22240
diff
changeset
|
424 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); |
f5d132f52f2a
Add the list of certificates in Pidgin's certificate manager to a
Mark Doliner <mark@kingant.net>
parents:
22240
diff
changeset
|
425 gtk_box_pack_start(GTK_BOX(mgmt_widget), GTK_WIDGET(sw), |
f5d132f52f2a
Add the list of certificates in Pidgin's certificate manager to a
Mark Doliner <mark@kingant.net>
parents:
22240
diff
changeset
|
426 TRUE, TRUE, /* Take up lots of space */ |
22254
f60df7e0450b
Improve the spacing in Pidgin's certificate manager window
Mark Doliner <mark@kingant.net>
parents:
22253
diff
changeset
|
427 0); |
22253
f5d132f52f2a
Add the list of certificates in Pidgin's certificate manager to a
Mark Doliner <mark@kingant.net>
parents:
22240
diff
changeset
|
428 gtk_widget_show(GTK_WIDGET(sw)); |
f5d132f52f2a
Add the list of certificates in Pidgin's certificate manager to a
Mark Doliner <mark@kingant.net>
parents:
22240
diff
changeset
|
429 |
19041
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
430 /* List view */ |
19042
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
431 store = gtk_list_store_new(TPM_N_COLUMNS, G_TYPE_STRING); |
22240
71e27bc2e82b
Remove whitespace on empty lions
Mark Doliner <mark@kingant.net>
parents:
22143
diff
changeset
|
432 |
19052
78f185af7952
- Add a struct to hold various pieces of data for the tls_peers mgmt UI
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19043
diff
changeset
|
433 tpm_dat->listview = listview = |
78f185af7952
- Add a struct to hold various pieces of data for the tls_peers mgmt UI
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19043
diff
changeset
|
434 GTK_TREE_VIEW(gtk_tree_view_new_with_model(GTK_TREE_MODEL(store))); |
22087
d943df776c09
It turns out the tree-models need to be unref'ed.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21970
diff
changeset
|
435 g_object_unref(G_OBJECT(store)); |
22240
71e27bc2e82b
Remove whitespace on empty lions
Mark Doliner <mark@kingant.net>
parents:
22143
diff
changeset
|
436 |
19042
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
437 { |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
438 GtkCellRenderer *renderer; |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
439 GtkTreeViewColumn *column; |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
440 |
19043
8026af6fbb3b
- Specify the selection mode on the tls_peers_mgmt listview (may not be
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19042
diff
changeset
|
441 /* Set up the display columns */ |
19042
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
442 renderer = gtk_cell_renderer_text_new(); |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
443 column = gtk_tree_view_column_new_with_attributes( |
21970
a83a70314f8a
Mark a string for translation.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21913
diff
changeset
|
444 _("Hostname"), |
19042
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
445 renderer, |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
446 "text", TPM_HOSTNAME_COLUMN, |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
447 NULL); |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
448 gtk_tree_view_append_column(GTK_TREE_VIEW(listview), column); |
19650
2604ae7c227b
Sort the certificates by hostname
Mark Doliner <mark@kingant.net>
parents:
19522
diff
changeset
|
449 |
2604ae7c227b
Sort the certificates by hostname
Mark Doliner <mark@kingant.net>
parents:
19522
diff
changeset
|
450 gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(store), |
2604ae7c227b
Sort the certificates by hostname
Mark Doliner <mark@kingant.net>
parents:
19522
diff
changeset
|
451 TPM_HOSTNAME_COLUMN, GTK_SORT_ASCENDING); |
19042
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
452 } |
22240
71e27bc2e82b
Remove whitespace on empty lions
Mark Doliner <mark@kingant.net>
parents:
22143
diff
changeset
|
453 |
19055
e5981fc8733f
- Code cosmetics
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19054
diff
changeset
|
454 /* Get the treeview selector into the struct */ |
e5981fc8733f
- Code cosmetics
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19054
diff
changeset
|
455 tpm_dat->listselect = select = |
e5981fc8733f
- Code cosmetics
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19054
diff
changeset
|
456 gtk_tree_view_get_selection(GTK_TREE_VIEW(listview)); |
22240
71e27bc2e82b
Remove whitespace on empty lions
Mark Doliner <mark@kingant.net>
parents:
22143
diff
changeset
|
457 |
19055
e5981fc8733f
- Code cosmetics
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19054
diff
changeset
|
458 /* Force the selection mode */ |
e5981fc8733f
- Code cosmetics
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19054
diff
changeset
|
459 gtk_tree_selection_set_mode(select, GTK_SELECTION_SINGLE); |
19056
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
460 |
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
461 /* Use a callback to enable/disable the buttons based on whether |
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
462 something is selected */ |
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
463 g_signal_connect(G_OBJECT(select), "changed", |
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
464 G_CALLBACK(tls_peers_mgmt_select_chg_cb), NULL); |
22240
71e27bc2e82b
Remove whitespace on empty lions
Mark Doliner <mark@kingant.net>
parents:
22143
diff
changeset
|
465 |
22253
f5d132f52f2a
Add the list of certificates in Pidgin's certificate manager to a
Mark Doliner <mark@kingant.net>
parents:
22240
diff
changeset
|
466 gtk_container_add(GTK_CONTAINER(sw), GTK_WIDGET(listview)); |
19052
78f185af7952
- Add a struct to hold various pieces of data for the tls_peers mgmt UI
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19043
diff
changeset
|
467 gtk_widget_show(GTK_WIDGET(listview)); |
78f185af7952
- Add a struct to hold various pieces of data for the tls_peers mgmt UI
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19043
diff
changeset
|
468 |
78f185af7952
- Add a struct to hold various pieces of data for the tls_peers mgmt UI
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19043
diff
changeset
|
469 /* Fill the list for the first time */ |
78f185af7952
- Add a struct to hold various pieces of data for the tls_peers mgmt UI
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19043
diff
changeset
|
470 tls_peers_mgmt_repopulate_list(); |
22240
71e27bc2e82b
Remove whitespace on empty lions
Mark Doliner <mark@kingant.net>
parents:
22143
diff
changeset
|
471 |
19041
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
472 /* Right-hand side controls box */ |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
473 bbox = gtk_vbutton_box_new(); |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
474 gtk_box_pack_end(GTK_BOX(mgmt_widget), bbox, |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
475 FALSE, FALSE, /* Do not take up space */ |
22254
f60df7e0450b
Improve the spacing in Pidgin's certificate manager window
Mark Doliner <mark@kingant.net>
parents:
22253
diff
changeset
|
476 0); |
19058
ba99c1100e98
- HIG compliance improved
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19057
diff
changeset
|
477 gtk_box_set_spacing(GTK_BOX(bbox), PIDGIN_HIG_BOX_SPACE); |
19041
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
478 gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_START); |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
479 gtk_widget_show(bbox); |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
480 |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
481 /* Import button */ |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
482 /* TODO: This is the wrong stock button */ |
19052
78f185af7952
- Add a struct to hold various pieces of data for the tls_peers mgmt UI
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19043
diff
changeset
|
483 tpm_dat->importbutton = importbutton = |
78f185af7952
- Add a struct to hold various pieces of data for the tls_peers mgmt UI
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19043
diff
changeset
|
484 gtk_button_new_from_stock(GTK_STOCK_ADD); |
19041
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
485 gtk_box_pack_start(GTK_BOX(bbox), importbutton, FALSE, FALSE, 0); |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
486 gtk_widget_show(importbutton); |
19062
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
487 g_signal_connect(G_OBJECT(importbutton), "clicked", |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
488 G_CALLBACK(tls_peers_mgmt_import_cb), NULL); |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
489 |
19041
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
490 |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
491 /* Export button */ |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
492 /* TODO: This is the wrong stock button */ |
19052
78f185af7952
- Add a struct to hold various pieces of data for the tls_peers mgmt UI
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19043
diff
changeset
|
493 tpm_dat->exportbutton = exportbutton = |
78f185af7952
- Add a struct to hold various pieces of data for the tls_peers mgmt UI
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19043
diff
changeset
|
494 gtk_button_new_from_stock(GTK_STOCK_SAVE); |
19041
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
495 gtk_box_pack_start(GTK_BOX(bbox), exportbutton, FALSE, FALSE, 0); |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
496 gtk_widget_show(exportbutton); |
19064
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
497 g_signal_connect(G_OBJECT(exportbutton), "clicked", |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
498 G_CALLBACK(tls_peers_mgmt_export_cb), NULL); |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
499 |
19041
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
500 |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
501 /* Info button */ |
19052
78f185af7952
- Add a struct to hold various pieces of data for the tls_peers mgmt UI
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19043
diff
changeset
|
502 tpm_dat->infobutton = infobutton = |
19503
2f0960548c1d
Make the gtkcert stuff compile on GTK+ older than 2.8
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19270
diff
changeset
|
503 gtk_button_new_from_stock(PIDGIN_STOCK_INFO); |
19041
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
504 gtk_box_pack_start(GTK_BOX(bbox), infobutton, FALSE, FALSE, 0); |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
505 gtk_widget_show(infobutton); |
19065
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
506 g_signal_connect(G_OBJECT(infobutton), "clicked", |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
507 G_CALLBACK(tls_peers_mgmt_info_cb), NULL); |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
508 |
19041
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
509 |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
510 /* Delete button */ |
19052
78f185af7952
- Add a struct to hold various pieces of data for the tls_peers mgmt UI
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19043
diff
changeset
|
511 tpm_dat->deletebutton = deletebutton = |
78f185af7952
- Add a struct to hold various pieces of data for the tls_peers mgmt UI
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19043
diff
changeset
|
512 gtk_button_new_from_stock(GTK_STOCK_DELETE); |
19041
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
513 gtk_box_pack_start(GTK_BOX(bbox), deletebutton, FALSE, FALSE, 0); |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
514 gtk_widget_show(deletebutton); |
19054
ffeb39523eb6
- Make the tls_peers certmgr delete button do something
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19053
diff
changeset
|
515 g_signal_connect(G_OBJECT(deletebutton), "clicked", |
ffeb39523eb6
- Make the tls_peers certmgr delete button do something
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19053
diff
changeset
|
516 G_CALLBACK(tls_peers_mgmt_delete_cb), NULL); |
19041
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
517 |
19057
3cc03c2801ed
- Delegate all button enabling/disabling in tls_peers_mgmt to its "is
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19056
diff
changeset
|
518 /* Call the "selection changed" callback, which will probably disable |
3cc03c2801ed
- Delegate all button enabling/disabling in tls_peers_mgmt to its "is
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19056
diff
changeset
|
519 all the buttons since nothing is selected yet */ |
3cc03c2801ed
- Delegate all button enabling/disabling in tls_peers_mgmt to its "is
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19056
diff
changeset
|
520 tls_peers_mgmt_select_chg_cb(select, NULL); |
19052
78f185af7952
- Add a struct to hold various pieces of data for the tls_peers mgmt UI
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19043
diff
changeset
|
521 |
19053
95a8469cd1e3
- tls_peers certmgr now responds to certificate-stored,
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19052
diff
changeset
|
522 /* Bind us to the tls_peers pool */ |
95a8469cd1e3
- tls_peers certmgr now responds to certificate-stored,
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19052
diff
changeset
|
523 tpm_dat->tls_peers = purple_certificate_find_pool("x509", "tls_peers"); |
22240
71e27bc2e82b
Remove whitespace on empty lions
Mark Doliner <mark@kingant.net>
parents:
22143
diff
changeset
|
524 |
19053
95a8469cd1e3
- tls_peers certmgr now responds to certificate-stored,
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19052
diff
changeset
|
525 /**** libpurple signals ****/ |
95a8469cd1e3
- tls_peers certmgr now responds to certificate-stored,
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19052
diff
changeset
|
526 /* Respond to certificate add/remove by just reloading everything */ |
95a8469cd1e3
- tls_peers certmgr now responds to certificate-stored,
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19052
diff
changeset
|
527 purple_signal_connect(tpm_dat->tls_peers, "certificate-stored", |
95a8469cd1e3
- tls_peers certmgr now responds to certificate-stored,
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19052
diff
changeset
|
528 tpm_dat, PURPLE_CALLBACK(tls_peers_mgmt_mod_cb), |
95a8469cd1e3
- tls_peers certmgr now responds to certificate-stored,
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19052
diff
changeset
|
529 NULL); |
95a8469cd1e3
- tls_peers certmgr now responds to certificate-stored,
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19052
diff
changeset
|
530 purple_signal_connect(tpm_dat->tls_peers, "certificate-deleted", |
95a8469cd1e3
- tls_peers certmgr now responds to certificate-stored,
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19052
diff
changeset
|
531 tpm_dat, PURPLE_CALLBACK(tls_peers_mgmt_mod_cb), |
95a8469cd1e3
- tls_peers certmgr now responds to certificate-stored,
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19052
diff
changeset
|
532 NULL); |
22240
71e27bc2e82b
Remove whitespace on empty lions
Mark Doliner <mark@kingant.net>
parents:
22143
diff
changeset
|
533 |
19039
3054f7c6b30d
- Add logic to allow tls_peers manager to properly uninit itself when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19038
diff
changeset
|
534 return mgmt_widget; |
19038
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
535 } |
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
536 |
21015
787b3897ba9f
Patch from Andrew Gaul to constify a bunch of static variables to reduce
Ka-Hing Cheung <khc@hxbc.us>
parents:
20074
diff
changeset
|
537 const PidginCertificateManager tls_peers_mgmt = { |
19038
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
538 tls_peers_mgmt_build, /* Widget creation function */ |
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
539 N_("SSL Servers") |
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
540 }; |
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
541 |
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
542 /***************************************************************************** |
19035
284199d26040
- Comment cosmetics
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19032
diff
changeset
|
543 * GTK+ main certificate manager * |
284199d26040
- Comment cosmetics
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19032
diff
changeset
|
544 *****************************************************************************/ |
19031
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
545 typedef struct |
19015
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff
changeset
|
546 { |
19031
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
547 GtkWidget *window; |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
548 GtkWidget *notebook; |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
549 |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
550 GtkWidget *closebutton; |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
551 } CertMgrDialog; |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
552 |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
553 /* If a certificate manager window is open, this will point to it. |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
554 So if it is set, don't open another one! */ |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
555 CertMgrDialog *certmgr_dialog = NULL; |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
556 |
21913
2a591a5b3322
Make some more event handlers return appropriate gboolean values. This turns
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21652
diff
changeset
|
557 static gboolean |
19031
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
558 certmgr_close_cb(GtkWidget *w, CertMgrDialog *dlg) |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
559 { |
19035
284199d26040
- Comment cosmetics
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19032
diff
changeset
|
560 /* TODO: Ignoring the arguments to this function may not be ideal, |
284199d26040
- Comment cosmetics
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19032
diff
changeset
|
561 but there *should* only be "one dialog to rule them all" at a time*/ |
19031
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
562 pidgin_certmgr_hide(); |
21913
2a591a5b3322
Make some more event handlers return appropriate gboolean values. This turns
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21652
diff
changeset
|
563 return FALSE; |
19031
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
564 } |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
565 |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
566 void |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
567 pidgin_certmgr_show(void) |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
568 { |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
569 CertMgrDialog *dlg; |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
570 GtkWidget *win; |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
571 GtkWidget *vbox; |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
572 |
19029
3f929a770f1b
- Add debug code to spit a list of all certificates in all pools when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19015
diff
changeset
|
573 /* Enumerate all the certificates on file */ |
3f929a770f1b
- Add debug code to spit a list of all certificates in all pools when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19015
diff
changeset
|
574 { |
3f929a770f1b
- Add debug code to spit a list of all certificates in all pools when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19015
diff
changeset
|
575 GList *idlist, *poollist; |
3f929a770f1b
- Add debug code to spit a list of all certificates in all pools when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19015
diff
changeset
|
576 |
3f929a770f1b
- Add debug code to spit a list of all certificates in all pools when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19015
diff
changeset
|
577 for ( poollist = purple_certificate_get_pools(); |
3f929a770f1b
- Add debug code to spit a list of all certificates in all pools when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19015
diff
changeset
|
578 poollist; |
3f929a770f1b
- Add debug code to spit a list of all certificates in all pools when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19015
diff
changeset
|
579 poollist = poollist->next ) { |
3f929a770f1b
- Add debug code to spit a list of all certificates in all pools when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19015
diff
changeset
|
580 PurpleCertificatePool *pool = poollist->data; |
3f929a770f1b
- Add debug code to spit a list of all certificates in all pools when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19015
diff
changeset
|
581 GList *l; |
22240
71e27bc2e82b
Remove whitespace on empty lions
Mark Doliner <mark@kingant.net>
parents:
22143
diff
changeset
|
582 |
19029
3f929a770f1b
- Add debug code to spit a list of all certificates in all pools when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19015
diff
changeset
|
583 purple_debug_info("gtkcertmgr", |
3f929a770f1b
- Add debug code to spit a list of all certificates in all pools when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19015
diff
changeset
|
584 "Pool %s found for scheme %s -" |
3f929a770f1b
- Add debug code to spit a list of all certificates in all pools when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19015
diff
changeset
|
585 "Enumerating certificates:\n", |
3f929a770f1b
- Add debug code to spit a list of all certificates in all pools when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19015
diff
changeset
|
586 pool->name, pool->scheme_name); |
3f929a770f1b
- Add debug code to spit a list of all certificates in all pools when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19015
diff
changeset
|
587 |
3f929a770f1b
- Add debug code to spit a list of all certificates in all pools when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19015
diff
changeset
|
588 idlist = purple_certificate_pool_get_idlist(pool); |
3f929a770f1b
- Add debug code to spit a list of all certificates in all pools when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19015
diff
changeset
|
589 |
3f929a770f1b
- Add debug code to spit a list of all certificates in all pools when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19015
diff
changeset
|
590 for (l=idlist; l; l = l->next) { |
3f929a770f1b
- Add debug code to spit a list of all certificates in all pools when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19015
diff
changeset
|
591 purple_debug_info("gtkcertmgr", |
3f929a770f1b
- Add debug code to spit a list of all certificates in all pools when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19015
diff
changeset
|
592 "- %s\n", |
19513
8c59bb6dfc7e
Fix printf(%s, NULL).
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19503
diff
changeset
|
593 l->data ? (gchar *) l->data : "(null)"); |
19029
3f929a770f1b
- Add debug code to spit a list of all certificates in all pools when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19015
diff
changeset
|
594 } /* idlist */ |
3f929a770f1b
- Add debug code to spit a list of all certificates in all pools when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19015
diff
changeset
|
595 purple_certificate_pool_destroy_idlist(idlist); |
3f929a770f1b
- Add debug code to spit a list of all certificates in all pools when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19015
diff
changeset
|
596 } /* poollist */ |
3f929a770f1b
- Add debug code to spit a list of all certificates in all pools when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19015
diff
changeset
|
597 } |
19031
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
598 |
22240
71e27bc2e82b
Remove whitespace on empty lions
Mark Doliner <mark@kingant.net>
parents:
22143
diff
changeset
|
599 |
19031
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
600 /* If the manager is already open, bring it to the front */ |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
601 if (certmgr_dialog != NULL) { |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
602 gtk_window_present(GTK_WINDOW(certmgr_dialog->window)); |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
603 return; |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
604 } |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
605 |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
606 /* Create the dialog, and set certmgr_dialog so we never create |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
607 more than one at a time */ |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
608 dlg = certmgr_dialog = g_new0(CertMgrDialog, 1); |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
609 |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
610 win = dlg->window = |
21646
2a2496044eef
Patch from fmoo. This makes a lot of the windows closeable with Escape. There
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21560
diff
changeset
|
611 pidgin_create_dialog(_("Certificate Manager"),/* Title */ |
19031
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
612 PIDGIN_HIG_BORDER, /*Window border*/ |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
613 "certmgr", /* Role */ |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
614 TRUE); /* Allow resizing */ |
19032
73172682eefd
- CertMgr window responds properly to delete_event
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19031
diff
changeset
|
615 g_signal_connect(G_OBJECT(win), "delete_event", |
73172682eefd
- CertMgr window responds properly to delete_event
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19031
diff
changeset
|
616 G_CALLBACK(certmgr_close_cb), dlg); |
73172682eefd
- CertMgr window responds properly to delete_event
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19031
diff
changeset
|
617 |
22240
71e27bc2e82b
Remove whitespace on empty lions
Mark Doliner <mark@kingant.net>
parents:
22143
diff
changeset
|
618 |
19031
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
619 /* TODO: Retrieve the user-set window size and use it */ |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
620 gtk_window_set_default_size(GTK_WINDOW(win), 400, 400); |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
621 |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
622 /* Main vbox */ |
21646
2a2496044eef
Patch from fmoo. This makes a lot of the windows closeable with Escape. There
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21560
diff
changeset
|
623 vbox = pidgin_dialog_get_vbox_with_properties(GTK_DIALOG(win), FALSE, PIDGIN_HIG_BORDER); |
19031
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
624 |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
625 /* Notebook of various certificate managers */ |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
626 dlg->notebook = gtk_notebook_new(); |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
627 gtk_box_pack_start(GTK_BOX(vbox), dlg->notebook, |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
628 TRUE, TRUE, /* Notebook should take extra space */ |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
629 0); |
19038
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
630 gtk_widget_show(dlg->notebook); |
19031
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
631 |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
632 /* Close button */ |
21652
eb2d5ba2a50d
Add a utility function pidgin_dialog_add_button to add buttons to a dialog
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21646
diff
changeset
|
633 dlg->closebutton = pidgin_dialog_add_button(GTK_DIALOG(win), GTK_STOCK_CLOSE, |
eb2d5ba2a50d
Add a utility function pidgin_dialog_add_button to add buttons to a dialog
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21646
diff
changeset
|
634 G_CALLBACK(certmgr_close_cb), dlg); |
19031
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
635 |
19038
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
636 /* Add the defined certificate managers */ |
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
637 /* TODO: Find a way of determining whether each is shown or not */ |
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
638 /* TODO: Implement this correctly */ |
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
639 gtk_notebook_append_page(GTK_NOTEBOOK (dlg->notebook), |
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
640 (tls_peers_mgmt.build)(), |
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
641 gtk_label_new(_(tls_peers_mgmt.label)) ); |
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
642 |
19031
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
643 gtk_widget_show(win); |
19015
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff
changeset
|
644 } |
19031
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
645 |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
646 void |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
647 pidgin_certmgr_hide(void) |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
648 { |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
649 /* If it isn't open, do nothing */ |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
650 if (certmgr_dialog == NULL) { |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
651 return; |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
652 } |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
653 |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
654 purple_signals_disconnect_by_handle(certmgr_dialog); |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
655 purple_prefs_disconnect_by_handle(certmgr_dialog); |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
656 |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
657 gtk_widget_destroy(certmgr_dialog->window); |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
658 g_free(certmgr_dialog); |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
659 certmgr_dialog = NULL; |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
660 } |