Mercurial > pidgin.yaz
annotate pidgin/gtkcertmgr.c @ 19908:0715328a0be3
Add the debug example plugin
author | John Bailey <rekkanoryo@rekkanoryo.org> |
---|---|
date | Sat, 08 Sep 2007 04:16:05 +0000 |
parents | 2604ae7c227b |
children | 44b4e8bd759b |
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 |
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff
changeset
|
4 * |
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff
changeset
|
5 * pidgin |
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff
changeset
|
6 * |
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff
changeset
|
7 * 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
|
8 * 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
|
9 * source distribution. |
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff
changeset
|
10 * |
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff
changeset
|
11 * 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
|
12 * 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
|
13 * 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
|
14 * (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
|
15 * |
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff
changeset
|
16 * 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
|
17 * 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
|
18 * 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
|
19 * 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
|
20 * |
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff
changeset
|
21 * 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
|
22 * along with this program; if not, write to the Free Software |
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff
changeset
|
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff
changeset
|
24 * |
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 |
19031
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
27 #include <glib.h> |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
28 |
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 "internal.h" |
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff
changeset
|
31 #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
|
32 #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
|
33 |
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff
changeset
|
34 #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
|
35 #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
|
36 #include "notify.h" |
19062
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
37 #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
|
38 |
19031
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
39 #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
|
40 #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
|
41 |
19015
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff
changeset
|
42 #include "gtkcertmgr.h" |
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff
changeset
|
43 |
19035
284199d26040
- Comment cosmetics
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19032
diff
changeset
|
44 /***************************************************************************** |
19038
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
45 * X.509 tls_peers management interface * |
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
46 *****************************************************************************/ |
19039
3054f7c6b30d
- Add logic to allow tls_peers manager to properly uninit itself when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19038
diff
changeset
|
47 |
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
|
48 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
|
49 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
|
50 GtkTreeView *listview; |
19054
ffeb39523eb6
- Make the tls_peers certmgr delete button do something
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19053
diff
changeset
|
51 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
|
52 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
|
53 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
|
54 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
|
55 GtkWidget *deletebutton; |
19053
95a8469cd1e3
- tls_peers certmgr now responds to certificate-stored,
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19052
diff
changeset
|
56 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
|
57 } 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
|
58 |
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 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
|
60 |
19041
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
61 /* Columns |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
62 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
|
63 enum |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
64 { |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
65 TPM_HOSTNAME_COLUMN, |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
66 TPM_N_COLUMNS |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
67 }; |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
68 |
19039
3054f7c6b30d
- Add logic to allow tls_peers manager to properly uninit itself when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19038
diff
changeset
|
69 static void |
3054f7c6b30d
- Add logic to allow tls_peers manager to properly uninit itself when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19038
diff
changeset
|
70 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
|
71 { |
3054f7c6b30d
- Add logic to allow tls_peers manager to properly uninit itself when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19038
diff
changeset
|
72 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
|
73 "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
|
74 |
19053
95a8469cd1e3
- tls_peers certmgr now responds to certificate-stored,
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19052
diff
changeset
|
75 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
|
76 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
|
77 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
|
78 } |
3054f7c6b30d
- Add logic to allow tls_peers manager to properly uninit itself when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19038
diff
changeset
|
79 |
19042
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
80 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
|
81 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
|
82 { |
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
|
83 GtkTreeView *listview = tpm_dat->listview; |
19042
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
84 PurpleCertificatePool *tls_peers; |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
85 GList *idlist, *l; |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
86 |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
87 GtkListStore *store = GTK_LIST_STORE( |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
88 gtk_tree_view_get_model(GTK_TREE_VIEW(listview))); |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
89 |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
90 /* First, delete everything in the list */ |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
91 gtk_list_store_clear(store); |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
92 |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
93 /* Locate the "tls_peers" pool */ |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
94 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
|
95 g_return_if_fail(tls_peers); |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
96 |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
97 /* Grab the loaded certificates */ |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
98 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
|
99 |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
100 /* Populate the listview */ |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
101 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
|
102 GtkTreeIter iter; |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
103 gtk_list_store_append(store, &iter); |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
104 |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
105 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
|
106 TPM_HOSTNAME_COLUMN, l->data, |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
107 -1); |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
108 } |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
109 purple_certificate_pool_destroy_idlist(idlist); |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
110 } |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
111 |
19053
95a8469cd1e3
- tls_peers certmgr now responds to certificate-stored,
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19052
diff
changeset
|
112 static void |
95a8469cd1e3
- tls_peers certmgr now responds to certificate-stored,
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19052
diff
changeset
|
113 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
|
114 { |
95a8469cd1e3
- tls_peers certmgr now responds to certificate-stored,
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19052
diff
changeset
|
115 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
|
116 |
95a8469cd1e3
- tls_peers certmgr now responds to certificate-stored,
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19052
diff
changeset
|
117 tls_peers_mgmt_repopulate_list(); |
95a8469cd1e3
- tls_peers certmgr now responds to certificate-stored,
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19052
diff
changeset
|
118 } |
95a8469cd1e3
- tls_peers certmgr now responds to certificate-stored,
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19052
diff
changeset
|
119 |
19054
ffeb39523eb6
- Make the tls_peers certmgr delete button do something
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19053
diff
changeset
|
120 static void |
19056
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
121 tls_peers_mgmt_select_chg_cb(GtkTreeSelection *ignored, gpointer data) |
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
122 { |
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
123 GtkTreeSelection *select = tpm_dat->listselect; |
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
124 GtkTreeIter iter; |
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
125 GtkTreeModel *model; |
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
126 |
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
127 /* See if things are selected */ |
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
128 if (gtk_tree_selection_get_selected(select, &model, &iter)) { |
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
129 /* Enable buttons if something is selected */ |
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
130 gtk_widget_set_sensitive(GTK_WIDGET(tpm_dat->exportbutton), TRUE); |
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
131 gtk_widget_set_sensitive(GTK_WIDGET(tpm_dat->infobutton), TRUE); |
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
132 gtk_widget_set_sensitive(GTK_WIDGET(tpm_dat->deletebutton), TRUE); |
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
133 } else { |
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
134 /* Otherwise, disable them */ |
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
135 gtk_widget_set_sensitive(GTK_WIDGET(tpm_dat->exportbutton), FALSE); |
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
136 gtk_widget_set_sensitive(GTK_WIDGET(tpm_dat->infobutton), FALSE); |
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
137 gtk_widget_set_sensitive(GTK_WIDGET(tpm_dat->deletebutton), FALSE); |
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 |
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
142 static void |
19062
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
143 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
|
144 { |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
145 PurpleCertificate *crt = (PurpleCertificate *) data; |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
146 const char *id = result; |
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 /* 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
|
149 |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
150 /* Drop the certificate into the pool */ |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
151 purple_certificate_pool_store(tpm_dat->tls_peers, id, crt); |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
152 |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
153 /* 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
|
154 purple_certificate_destroy(crt); |
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 |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
157 static void |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
158 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
|
159 { |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
160 PurpleCertificate *crt = (PurpleCertificate *) data; |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
161 purple_certificate_destroy(crt); |
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 |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
164 static void |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
165 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
|
166 { |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
167 PurpleCertificateScheme *x509; |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
168 PurpleCertificate *crt; |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
169 |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
170 /* 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
|
171 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
|
172 |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
173 /* Now load the certificate from disk */ |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
174 crt = purple_certificate_import(x509, filename); |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
175 |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
176 /* Did it work? */ |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
177 if (crt != NULL) { |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
178 gchar *default_hostname; |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
179 /* Get name to add to pool as */ |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
180 /* 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
|
181 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
|
182 /* 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
|
183 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
|
184 deletion */ |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
185 /* TODO: Display some more information on the certificate? */ |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
186 purple_request_input(tpm_dat, |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
187 _("Certificate Import"), |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
188 _("Specify a hostname"), |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
189 _("Type the host name this certificate is for."), |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
190 default_hostname, |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
191 FALSE, /* Not multiline */ |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
192 FALSE, /* Not masked? */ |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
193 NULL, /* No hints? */ |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
194 _("OK"), |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
195 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
|
196 _("Cancel"), |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
197 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
|
198 NULL, NULL, NULL, /* No account/who/conv*/ |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
199 crt /* Pass cert instance to callback*/ |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
200 ); |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
201 |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
202 g_free(default_hostname); |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
203 } else { |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
204 /* Errors! Oh no! */ |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
205 /* 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
|
206 went wrong? */ |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
207 gchar * secondary; |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
208 |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
209 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
|
210 purple_notify_error(NULL, |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
211 _("Certificate Import Error"), |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
212 _("X.509 certificate import failed"), |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
213 secondary); |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
214 g_free(secondary); |
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 |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
218 static void |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
219 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
|
220 { |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
221 /* TODO: need to tell the user that we want a .PEM file! */ |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
222 purple_request_file(tpm_dat, |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
223 _("Select a PEM certificate"), |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
224 "certificate.pem", |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
225 FALSE, /* Not a save dialog */ |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
226 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
|
227 NULL, /* Do nothing if cancelled */ |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
228 NULL, NULL, NULL, NULL );/* No account,conv,etc. */ |
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 |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
231 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
|
232 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
|
233 { |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
234 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
|
235 |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
236 g_assert(filename); |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
237 |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
238 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
|
239 /* 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
|
240 /* 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
|
241 went wrong? */ |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
242 gchar * secondary; |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
243 |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
244 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
|
245 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
|
246 _("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
|
247 _("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
|
248 secondary); |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
249 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
|
250 } |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
251 |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
252 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
|
253 } |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
254 |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
255 static void |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
256 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
|
257 { |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
258 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
|
259 /* 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
|
260 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
|
261 } |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
262 |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
263 static void |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
264 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
|
265 { |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
266 PurpleCertificate *crt; |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
267 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
|
268 GtkTreeIter iter; |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
269 GtkTreeModel *model; |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
270 gchar *id; |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
271 |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
272 /* 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
|
273 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
|
274 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
|
275 "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
|
276 return; |
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 |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
279 /* 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
|
280 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
|
281 |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
282 /* 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
|
283 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
|
284 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
|
285 |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
286 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
|
287 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
|
288 "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
|
289 id); |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
290 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
|
291 return; |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
292 } |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
293 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
|
294 |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
295 |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
296 /* TODO: inform user that it will be a PEM? */ |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
297 purple_request_file(tpm_dat, |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
298 _("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
|
299 "certificate.pem", |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
300 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
|
301 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
|
302 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
|
303 NULL, NULL, NULL, /* No account,conv,etc. */ |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
304 crt); /* Pass the certificate on to the callback */ |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
305 } |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
306 |
19065
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
307 static void |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
308 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
|
309 { |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
310 GtkTreeSelection *select = tpm_dat->listselect; |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
311 GtkTreeIter iter; |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
312 GtkTreeModel *model; |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
313 gchar *id; |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
314 PurpleCertificate *crt; |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
315 gchar *subject; |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
316 GByteArray *fpr_sha1; |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
317 gchar *fpr_sha1_asc; |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
318 gchar *primary, *secondary; |
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 /* See if things are selected */ |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
321 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
|
322 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
|
323 "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
|
324 return; |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
325 } |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
326 |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
327 /* Retrieve the selected hostname */ |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
328 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
|
329 |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
330 /* Now retrieve the certificate */ |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
331 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
|
332 g_return_if_fail(crt); |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
333 |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
334 /* Build a notification thing */ |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
335 /* TODO: This needs a better GUI, but a notification will do for now */ |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
336 primary = g_strdup_printf(_("Certificate for %s"), id); |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
337 |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
338 fpr_sha1 = purple_certificate_get_fingerprint_sha1(crt); |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
339 fpr_sha1_asc = purple_base16_encode_chunked(fpr_sha1->data, |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
340 fpr_sha1->len); |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
341 subject = purple_certificate_get_subject_name(crt); |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
342 |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
343 secondary = g_strdup_printf(_("Common name: %s\n\nSHA1 fingerprint:\n%s"), subject, fpr_sha1_asc); |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
344 |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
345 purple_notify_info(tpm_dat, |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
346 _("SSL Host Certificate"), primary, secondary ); |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
347 |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
348 g_free(primary); |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
349 g_free(secondary); |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
350 g_byte_array_free(fpr_sha1, TRUE); |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
351 g_free(fpr_sha1_asc); |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
352 g_free(subject); |
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
353 g_free(id); |
19219
8828d7aec7b6
- Fix a memleak
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19066
diff
changeset
|
354 purple_certificate_destroy(crt); |
19065
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
355 } |
19064
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
356 |
f407244c4e57
- Export button now functional due to the magic of copy-paste coding
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19062
diff
changeset
|
357 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
|
358 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
|
359 { |
b631b409a515
- Make tls_peers_mgmt delete button prompt for yes/no before removing
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19065
diff
changeset
|
360 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
|
361 /* 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
|
362 /* Now delete the thing */ |
19270
fb4a1fb9ce8a
- Fix some overzealous g_asserts leading to a crash
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19219
diff
changeset
|
363 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
|
364 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
|
365 "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
|
366 id); |
fb4a1fb9ce8a
- Fix some overzealous g_asserts leading to a crash
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19219
diff
changeset
|
367 }; |
19066
b631b409a515
- Make tls_peers_mgmt delete button prompt for yes/no before removing
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19065
diff
changeset
|
368 } |
b631b409a515
- Make tls_peers_mgmt delete button prompt for yes/no before removing
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19065
diff
changeset
|
369 |
b631b409a515
- Make tls_peers_mgmt delete button prompt for yes/no before removing
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19065
diff
changeset
|
370 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
|
371 } |
b631b409a515
- Make tls_peers_mgmt delete button prompt for yes/no before removing
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19065
diff
changeset
|
372 |
b631b409a515
- Make tls_peers_mgmt delete button prompt for yes/no before removing
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19065
diff
changeset
|
373 static void |
19054
ffeb39523eb6
- Make the tls_peers certmgr delete button do something
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19053
diff
changeset
|
374 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
|
375 { |
ffeb39523eb6
- Make the tls_peers certmgr delete button do something
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19053
diff
changeset
|
376 GtkTreeSelection *select = tpm_dat->listselect; |
ffeb39523eb6
- Make the tls_peers certmgr delete button do something
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19053
diff
changeset
|
377 GtkTreeIter iter; |
ffeb39523eb6
- Make the tls_peers certmgr delete button do something
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19053
diff
changeset
|
378 GtkTreeModel *model; |
ffeb39523eb6
- Make the tls_peers certmgr delete button do something
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19053
diff
changeset
|
379 |
ffeb39523eb6
- Make the tls_peers certmgr delete button do something
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19053
diff
changeset
|
380 /* See if things are selected */ |
ffeb39523eb6
- Make the tls_peers certmgr delete button do something
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19053
diff
changeset
|
381 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
|
382 |
ffeb39523eb6
- Make the tls_peers certmgr delete button do something
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19053
diff
changeset
|
383 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
|
384 gchar *primary; |
19054
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 /* Retrieve the selected hostname */ |
ffeb39523eb6
- Make the tls_peers certmgr delete button do something
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19053
diff
changeset
|
387 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
|
388 |
19066
b631b409a515
- Make tls_peers_mgmt delete button prompt for yes/no before removing
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19065
diff
changeset
|
389 /* 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
|
390 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
|
391 _("Really delete certificate for %s?"), id ); |
19054
ffeb39523eb6
- Make the tls_peers certmgr delete button do something
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19053
diff
changeset
|
392 |
19066
b631b409a515
- Make tls_peers_mgmt delete button prompt for yes/no before removing
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19065
diff
changeset
|
393 purple_request_yes_no(tpm_dat, _("Confirm certificate delete"), |
b631b409a515
- Make tls_peers_mgmt delete button prompt for yes/no before removing
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19065
diff
changeset
|
394 primary, NULL, /* Can this be NULL? */ |
b631b409a515
- Make tls_peers_mgmt delete button prompt for yes/no before removing
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19065
diff
changeset
|
395 2, /* NO is default action */ |
b631b409a515
- Make tls_peers_mgmt delete button prompt for yes/no before removing
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19065
diff
changeset
|
396 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
|
397 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
|
398 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
|
399 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
|
400 |
b631b409a515
- Make tls_peers_mgmt delete button prompt for yes/no before removing
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19065
diff
changeset
|
401 g_free(primary); |
b631b409a515
- Make tls_peers_mgmt delete button prompt for yes/no before removing
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19065
diff
changeset
|
402 |
19054
ffeb39523eb6
- Make the tls_peers certmgr delete button do something
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19053
diff
changeset
|
403 } else { |
ffeb39523eb6
- Make the tls_peers certmgr delete button do something
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19053
diff
changeset
|
404 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
|
405 "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
|
406 return; |
ffeb39523eb6
- Make the tls_peers certmgr delete button do something
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19053
diff
changeset
|
407 } |
ffeb39523eb6
- Make the tls_peers certmgr delete button do something
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19053
diff
changeset
|
408 } |
ffeb39523eb6
- Make the tls_peers certmgr delete button do something
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19053
diff
changeset
|
409 |
19038
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
410 static GtkWidget * |
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
411 tls_peers_mgmt_build(void) |
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
412 { |
19041
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
413 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
|
414 GtkListStore *store; |
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
|
415 |
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
|
416 /* 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
|
417 GtkTreeView *listview; |
19055
e5981fc8733f
- Code cosmetics
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19054
diff
changeset
|
418 GtkTreeSelection *select; |
19041
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
419 GtkWidget *importbutton; |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
420 GtkWidget *exportbutton; |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
421 GtkWidget *infobutton; |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
422 GtkWidget *deletebutton; |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
423 /** 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
|
424 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
|
425 |
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
|
426 /* 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
|
427 tpm_dat = g_new0(tls_peers_mgmt_data, 1); |
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
|
428 |
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
|
429 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
|
430 gtk_hbox_new(FALSE, /* Non-homogeneous */ |
19058
ba99c1100e98
- HIG compliance improved
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19057
diff
changeset
|
431 PIDGIN_HIG_BORDER); |
19039
3054f7c6b30d
- Add logic to allow tls_peers manager to properly uninit itself when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19038
diff
changeset
|
432 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
|
433 |
3054f7c6b30d
- Add logic to allow tls_peers manager to properly uninit itself when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19038
diff
changeset
|
434 /* 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
|
435 is closed */ |
3054f7c6b30d
- Add logic to allow tls_peers manager to properly uninit itself when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19038
diff
changeset
|
436 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
|
437 G_CALLBACK(tls_peers_mgmt_destroy), NULL); |
19041
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
438 |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
439 /* List view */ |
19042
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
440 store = gtk_list_store_new(TPM_N_COLUMNS, G_TYPE_STRING); |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
441 |
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
|
442 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
|
443 GTK_TREE_VIEW(gtk_tree_view_new_with_model(GTK_TREE_MODEL(store))); |
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
|
444 |
19042
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
445 { |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
446 GtkCellRenderer *renderer; |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
447 GtkTreeViewColumn *column; |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
448 |
19043
8026af6fbb3b
- Specify the selection mode on the tls_peers_mgmt listview (may not be
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19042
diff
changeset
|
449 /* Set up the display columns */ |
19042
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
450 renderer = gtk_cell_renderer_text_new(); |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
451 column = gtk_tree_view_column_new_with_attributes( |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
452 "Hostname", |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
453 renderer, |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
454 "text", TPM_HOSTNAME_COLUMN, |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
455 NULL); |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
456 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
|
457 |
2604ae7c227b
Sort the certificates by hostname
Mark Doliner <mark@kingant.net>
parents:
19522
diff
changeset
|
458 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
|
459 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
|
460 } |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
461 |
19055
e5981fc8733f
- Code cosmetics
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19054
diff
changeset
|
462 /* Get the treeview selector into the struct */ |
e5981fc8733f
- Code cosmetics
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19054
diff
changeset
|
463 tpm_dat->listselect = select = |
e5981fc8733f
- Code cosmetics
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19054
diff
changeset
|
464 gtk_tree_view_get_selection(GTK_TREE_VIEW(listview)); |
e5981fc8733f
- Code cosmetics
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19054
diff
changeset
|
465 |
e5981fc8733f
- Code cosmetics
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19054
diff
changeset
|
466 /* Force the selection mode */ |
e5981fc8733f
- Code cosmetics
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19054
diff
changeset
|
467 gtk_tree_selection_set_mode(select, GTK_SELECTION_SINGLE); |
19056
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
468 |
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
469 /* 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
|
470 something is selected */ |
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
471 g_signal_connect(G_OBJECT(select), "changed", |
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
472 G_CALLBACK(tls_peers_mgmt_select_chg_cb), NULL); |
19055
e5981fc8733f
- Code cosmetics
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19054
diff
changeset
|
473 |
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
|
474 gtk_box_pack_start(GTK_BOX(mgmt_widget), GTK_WIDGET(listview), |
19041
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
475 TRUE, TRUE, /* Take up lots of space */ |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
476 0); /* TODO: this padding is wrong */ |
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
|
477 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
|
478 |
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
|
479 /* 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
|
480 tls_peers_mgmt_repopulate_list(); |
19041
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
481 |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
482 /* Right-hand side controls box */ |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
483 bbox = gtk_vbutton_box_new(); |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
484 gtk_box_pack_end(GTK_BOX(mgmt_widget), bbox, |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
485 FALSE, FALSE, /* Do not take up space */ |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
486 0); /* TODO: this padding is probably wrong */ |
19058
ba99c1100e98
- HIG compliance improved
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19057
diff
changeset
|
487 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
|
488 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
|
489 gtk_widget_show(bbox); |
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 /* Import 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->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
|
494 gtk_button_new_from_stock(GTK_STOCK_ADD); |
19041
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
495 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
|
496 gtk_widget_show(importbutton); |
19062
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
497 g_signal_connect(G_OBJECT(importbutton), "clicked", |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
498 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
|
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 /* Export button */ |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
502 /* 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
|
503 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
|
504 gtk_button_new_from_stock(GTK_STOCK_SAVE); |
19041
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
505 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
|
506 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
|
507 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
|
508 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
|
509 |
19041
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
510 |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
511 /* 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
|
512 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
|
513 gtk_button_new_from_stock(PIDGIN_STOCK_INFO); |
19041
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
514 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
|
515 gtk_widget_show(infobutton); |
19065
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
516 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
|
517 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
|
518 |
19041
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
519 |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
520 /* 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
|
521 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
|
522 gtk_button_new_from_stock(GTK_STOCK_DELETE); |
19041
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
523 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
|
524 gtk_widget_show(deletebutton); |
19054
ffeb39523eb6
- Make the tls_peers certmgr delete button do something
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19053
diff
changeset
|
525 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
|
526 G_CALLBACK(tls_peers_mgmt_delete_cb), NULL); |
19041
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
527 |
19057
3cc03c2801ed
- Delegate all button enabling/disabling in tls_peers_mgmt to its "is
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19056
diff
changeset
|
528 /* 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
|
529 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
|
530 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
|
531 |
19053
95a8469cd1e3
- tls_peers certmgr now responds to certificate-stored,
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19052
diff
changeset
|
532 /* 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
|
533 tpm_dat->tls_peers = purple_certificate_find_pool("x509", "tls_peers"); |
95a8469cd1e3
- tls_peers certmgr now responds to certificate-stored,
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19052
diff
changeset
|
534 |
95a8469cd1e3
- tls_peers certmgr now responds to certificate-stored,
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19052
diff
changeset
|
535 /**** libpurple signals ****/ |
95a8469cd1e3
- tls_peers certmgr now responds to certificate-stored,
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19052
diff
changeset
|
536 /* 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
|
537 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
|
538 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
|
539 NULL); |
95a8469cd1e3
- tls_peers certmgr now responds to certificate-stored,
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19052
diff
changeset
|
540 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
|
541 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
|
542 NULL); |
95a8469cd1e3
- tls_peers certmgr now responds to certificate-stored,
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19052
diff
changeset
|
543 |
19039
3054f7c6b30d
- Add logic to allow tls_peers manager to properly uninit itself when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19038
diff
changeset
|
544 return mgmt_widget; |
19038
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
545 } |
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
546 |
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
547 PidginCertificateManager tls_peers_mgmt = { |
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
548 tls_peers_mgmt_build, /* Widget creation function */ |
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
549 N_("SSL Servers") |
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
550 }; |
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
551 |
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
552 /***************************************************************************** |
19035
284199d26040
- Comment cosmetics
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19032
diff
changeset
|
553 * GTK+ main certificate manager * |
284199d26040
- Comment cosmetics
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19032
diff
changeset
|
554 *****************************************************************************/ |
19031
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
555 typedef struct |
19015
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff
changeset
|
556 { |
19031
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
557 GtkWidget *window; |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
558 GtkWidget *notebook; |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
559 |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
560 GtkWidget *closebutton; |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
561 } CertMgrDialog; |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
562 |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
563 /* 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
|
564 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
|
565 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
|
566 |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
567 static void |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
568 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
|
569 { |
19035
284199d26040
- Comment cosmetics
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19032
diff
changeset
|
570 /* TODO: Ignoring the arguments to this function may not be ideal, |
284199d26040
- Comment cosmetics
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19032
diff
changeset
|
571 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
|
572 pidgin_certmgr_hide(); |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
573 } |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
574 |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
575 void |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
576 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
|
577 { |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
578 CertMgrDialog *dlg; |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
579 GtkWidget *win; |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
580 GtkWidget *vbox; |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
581 GtkWidget *bbox; |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
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 /* 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
|
584 { |
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 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
|
586 |
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 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
|
588 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
|
589 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
|
590 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
|
591 GList *l; |
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 |
3f929a770f1b
- Add debug code to spit a list of all certificates in all pools when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19015
diff
changeset
|
593 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
|
594 "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
|
595 "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
|
596 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
|
597 |
3f929a770f1b
- Add debug code to spit a list of all certificates in all pools when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19015
diff
changeset
|
598 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
|
599 |
3f929a770f1b
- Add debug code to spit a list of all certificates in all pools when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19015
diff
changeset
|
600 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
|
601 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
|
602 "- %s\n", |
19513
8c59bb6dfc7e
Fix printf(%s, NULL).
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19503
diff
changeset
|
603 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
|
604 } /* 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
|
605 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
|
606 } /* 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
|
607 } |
19031
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
608 |
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 /* 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
|
611 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
|
612 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
|
613 return; |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
614 } |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
615 |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
616 /* 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
|
617 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
|
618 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
|
619 |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
620 win = dlg->window = |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
621 pidgin_create_window(_("Certificate Manager"),/* Title */ |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
622 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
|
623 "certmgr", /* Role */ |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
624 TRUE); /* Allow resizing */ |
19032
73172682eefd
- CertMgr window responds properly to delete_event
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19031
diff
changeset
|
625 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
|
626 G_CALLBACK(certmgr_close_cb), dlg); |
73172682eefd
- CertMgr window responds properly to delete_event
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19031
diff
changeset
|
627 |
19031
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
628 |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
629 /* 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
|
630 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
|
631 |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
632 /* Main vbox */ |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
633 vbox = gtk_vbox_new( FALSE, PIDGIN_HIG_BORDER ); |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
634 gtk_container_add(GTK_CONTAINER(win), vbox); |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
635 gtk_widget_show(vbox); |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
636 |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
637 /* 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
|
638 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
|
639 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
|
640 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
|
641 0); |
19038
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
642 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
|
643 |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
644 /* Box for the close button */ |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
645 bbox = gtk_hbutton_box_new(); |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
646 gtk_box_set_spacing(GTK_BOX(bbox), PIDGIN_HIG_BOX_SPACE); |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
647 gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END); |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
648 gtk_box_pack_end(GTK_BOX(vbox), bbox, FALSE, TRUE, 0); |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
649 gtk_widget_show(bbox); |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
650 |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
651 /* Close button */ |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
652 dlg->closebutton = gtk_button_new_from_stock(GTK_STOCK_CLOSE); |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
653 gtk_box_pack_start(GTK_BOX(bbox), dlg->closebutton, FALSE, FALSE, 0); |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
654 gtk_widget_show(dlg->closebutton); |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
655 g_signal_connect(G_OBJECT(dlg->closebutton), "clicked", |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
656 G_CALLBACK(certmgr_close_cb), dlg); |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
657 |
19038
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
658 /* Add the defined certificate managers */ |
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
659 /* 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
|
660 /* TODO: Implement this correctly */ |
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
661 gtk_notebook_append_page(GTK_NOTEBOOK (dlg->notebook), |
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
662 (tls_peers_mgmt.build)(), |
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
663 gtk_label_new(_(tls_peers_mgmt.label)) ); |
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
664 |
19031
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
665 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
|
666 } |
19031
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
667 |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
668 void |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
669 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
|
670 { |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
671 /* 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
|
672 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
|
673 return; |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
674 } |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
675 |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
676 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
|
677 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
|
678 |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
679 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
|
680 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
|
681 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
|
682 } |