Mercurial > pidgin.yaz
annotate pidgin/gtkcertmgr.c @ 19603:79d624f7c3ee
You can't just look at the first letter of the screen name to determine
if it's AIM or ICQ now. It's possible for someone to register their
email address as an AIM account, and you can register "12345imcool@gmail.com"
as an AIM account. If you only look at the first letter then Pidgin
will think it's ICQ.
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Mon, 03 Sep 2007 09:45:56 +0000 |
parents | 759273051b26 |
children | 2604ae7c227b |
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); |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
457 } |
276c4b70d9cb
- CertMgr now lists the certificates in the pool
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19041
diff
changeset
|
458 |
19055
e5981fc8733f
- Code cosmetics
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19054
diff
changeset
|
459 /* Get the treeview selector into the struct */ |
e5981fc8733f
- Code cosmetics
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19054
diff
changeset
|
460 tpm_dat->listselect = select = |
e5981fc8733f
- Code cosmetics
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19054
diff
changeset
|
461 gtk_tree_view_get_selection(GTK_TREE_VIEW(listview)); |
e5981fc8733f
- Code cosmetics
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19054
diff
changeset
|
462 |
e5981fc8733f
- Code cosmetics
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19054
diff
changeset
|
463 /* Force the selection mode */ |
e5981fc8733f
- Code cosmetics
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19054
diff
changeset
|
464 gtk_tree_selection_set_mode(select, GTK_SELECTION_SINGLE); |
19056
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
465 |
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
466 /* 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
|
467 something is selected */ |
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
468 g_signal_connect(G_OBJECT(select), "changed", |
9e747806bb07
- Delete button now usable!
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19055
diff
changeset
|
469 G_CALLBACK(tls_peers_mgmt_select_chg_cb), NULL); |
19055
e5981fc8733f
- Code cosmetics
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19054
diff
changeset
|
470 |
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
|
471 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
|
472 TRUE, TRUE, /* Take up lots of space */ |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
473 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
|
474 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
|
475 |
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
|
476 /* 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
|
477 tls_peers_mgmt_repopulate_list(); |
19041
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
478 |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
479 /* Right-hand side controls box */ |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
480 bbox = gtk_vbutton_box_new(); |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
481 gtk_box_pack_end(GTK_BOX(mgmt_widget), bbox, |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
482 FALSE, FALSE, /* Do not take up space */ |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
483 0); /* TODO: this padding is probably wrong */ |
19058
ba99c1100e98
- HIG compliance improved
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19057
diff
changeset
|
484 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
|
485 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
|
486 gtk_widget_show(bbox); |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
487 |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
488 /* Import button */ |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
489 /* 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
|
490 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
|
491 gtk_button_new_from_stock(GTK_STOCK_ADD); |
19041
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
492 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
|
493 gtk_widget_show(importbutton); |
19062
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
494 g_signal_connect(G_OBJECT(importbutton), "clicked", |
da88aa8f83ad
- Import button now (more or less) functional
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19061
diff
changeset
|
495 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
|
496 |
19041
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
497 |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
498 /* Export button */ |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
499 /* 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
|
500 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
|
501 gtk_button_new_from_stock(GTK_STOCK_SAVE); |
19041
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
502 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
|
503 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
|
504 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
|
505 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
|
506 |
19041
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
507 |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
508 /* 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
|
509 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
|
510 gtk_button_new_from_stock(PIDGIN_STOCK_INFO); |
19041
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
511 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
|
512 gtk_widget_show(infobutton); |
19065
ebae00bbb57e
- Make a rudimentary information button in tls_peers_mgmt
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19064
diff
changeset
|
513 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
|
514 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
|
515 |
19041
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
516 |
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
517 /* 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
|
518 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
|
519 gtk_button_new_from_stock(GTK_STOCK_DELETE); |
19041
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
520 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
|
521 gtk_widget_show(deletebutton); |
19054
ffeb39523eb6
- Make the tls_peers certmgr delete button do something
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19053
diff
changeset
|
522 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
|
523 G_CALLBACK(tls_peers_mgmt_delete_cb), NULL); |
19041
dd4444be5e26
- More pretty (useless) GUI sugar
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19039
diff
changeset
|
524 |
19057
3cc03c2801ed
- Delegate all button enabling/disabling in tls_peers_mgmt to its "is
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19056
diff
changeset
|
525 /* 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
|
526 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
|
527 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
|
528 |
19053
95a8469cd1e3
- tls_peers certmgr now responds to certificate-stored,
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19052
diff
changeset
|
529 /* 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
|
530 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
|
531 |
95a8469cd1e3
- tls_peers certmgr now responds to certificate-stored,
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19052
diff
changeset
|
532 /**** libpurple signals ****/ |
95a8469cd1e3
- tls_peers certmgr now responds to certificate-stored,
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19052
diff
changeset
|
533 /* 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
|
534 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
|
535 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
|
536 NULL); |
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-deleted", |
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 |
19039
3054f7c6b30d
- Add logic to allow tls_peers manager to properly uninit itself when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19038
diff
changeset
|
541 return mgmt_widget; |
19038
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
542 } |
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
543 |
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
544 PidginCertificateManager tls_peers_mgmt = { |
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
545 tls_peers_mgmt_build, /* Widget creation function */ |
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
546 N_("SSL Servers") |
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
547 }; |
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
548 |
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
549 /***************************************************************************** |
19035
284199d26040
- Comment cosmetics
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19032
diff
changeset
|
550 * GTK+ main certificate manager * |
284199d26040
- Comment cosmetics
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19032
diff
changeset
|
551 *****************************************************************************/ |
19031
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
552 typedef struct |
19015
720c61141f4b
- Add a skeleton for the Pidgin Certificate Manager and include it in
William Ehlhardt <williamehlhardt@gmail.com>
parents:
diff
changeset
|
553 { |
19031
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
554 GtkWidget *window; |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
555 GtkWidget *notebook; |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
556 |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
557 GtkWidget *closebutton; |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
558 } CertMgrDialog; |
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 /* 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
|
561 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
|
562 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
|
563 |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
564 static void |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
565 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
|
566 { |
19035
284199d26040
- Comment cosmetics
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19032
diff
changeset
|
567 /* TODO: Ignoring the arguments to this function may not be ideal, |
284199d26040
- Comment cosmetics
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19032
diff
changeset
|
568 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
|
569 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
|
570 } |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
571 |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
572 void |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
573 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
|
574 { |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
575 CertMgrDialog *dlg; |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
576 GtkWidget *win; |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
577 GtkWidget *vbox; |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
578 GtkWidget *bbox; |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
579 |
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
|
580 /* 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
|
581 { |
3f929a770f1b
- Add debug code to spit a list of all certificates in all pools when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19015
diff
changeset
|
582 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
|
583 |
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 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
|
585 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 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
|
587 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
|
588 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
|
589 |
3f929a770f1b
- Add debug code to spit a list of all certificates in all pools when
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19015
diff
changeset
|
590 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
|
591 "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
|
592 "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
|
593 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
|
594 |
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 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
|
596 |
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 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
|
598 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
|
599 "- %s\n", |
19513
8c59bb6dfc7e
Fix printf(%s, NULL).
Daniel Atallah <daniel.atallah@gmail.com>
parents:
19503
diff
changeset
|
600 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
|
601 } /* 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
|
602 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
|
603 } /* 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
|
604 } |
19031
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
605 |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
606 |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
607 /* 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
|
608 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
|
609 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
|
610 return; |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
611 } |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
612 |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
613 /* 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
|
614 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
|
615 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
|
616 |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
617 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
|
618 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
|
619 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
|
620 "certmgr", /* Role */ |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
621 TRUE); /* Allow resizing */ |
19032
73172682eefd
- CertMgr window responds properly to delete_event
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19031
diff
changeset
|
622 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
|
623 G_CALLBACK(certmgr_close_cb), dlg); |
73172682eefd
- CertMgr window responds properly to delete_event
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19031
diff
changeset
|
624 |
19031
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
625 |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
626 /* 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
|
627 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
|
628 |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
629 /* Main vbox */ |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
630 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
|
631 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
|
632 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
|
633 |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
634 /* 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
|
635 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
|
636 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
|
637 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
|
638 0); |
19038
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
639 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
|
640 |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
641 /* 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
|
642 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
|
643 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
|
644 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
|
645 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
|
646 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
|
647 |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
648 /* Close button */ |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
649 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
|
650 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
|
651 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
|
652 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
|
653 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
|
654 |
19038
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
655 /* Add the defined certificate managers */ |
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
656 /* 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
|
657 /* TODO: Implement this correctly */ |
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
658 gtk_notebook_append_page(GTK_NOTEBOOK (dlg->notebook), |
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
659 (tls_peers_mgmt.build)(), |
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
660 gtk_label_new(_(tls_peers_mgmt.label)) ); |
5040616cace9
- Mock tls_peers mgmt interface
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19035
diff
changeset
|
661 |
19031
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
662 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
|
663 } |
19031
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
664 |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
665 void |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
666 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
|
667 { |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
668 /* 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
|
669 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
|
670 return; |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
671 } |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
672 |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
673 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
|
674 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
|
675 |
8c3fecc32451
- Make a real Certificate Manager dialog instead of a stupid popup. It
William Ehlhardt <williamehlhardt@gmail.com>
parents:
19029
diff
changeset
|
676 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
|
677 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
|
678 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
|
679 } |