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