[pan2: 266/268] reimplemented remove/add cert
- From: Heinrich MÃller <henmull src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pan2: 266/268] reimplemented remove/add cert
- Date: Mon, 2 Jan 2012 16:00:21 +0000 (UTC)
commit 413126597d93d0ba61f4d3b4c4bd5b444440ca6d
Author: Heinrich MÃller <henmull src gnome org>
Date: Mon Jan 2 15:03:54 2012 +0100
reimplemented remove/add cert
pan/data/cert-store.cc | 14 +++++++++-----
pan/data/cert-store.h | 8 ++------
pan/gui/actions.cc | 5 ++++-
pan/gui/gui.cc | 8 +-------
4 files changed, 16 insertions(+), 19 deletions(-)
---
diff --git a/pan/data/cert-store.cc b/pan/data/cert-store.cc
index 4d98d8d..e160f6c 100644
--- a/pan/data/cert-store.cc
+++ b/pan/data/cert-store.cc
@@ -178,6 +178,8 @@ namespace pan
FILE * fp = fopen(filename, "rb");
if (!fp) return false;
+ std::cerr<<"importing cert for server "<<server<<" "<<(filename ? filename : "empty")<<"\n";
+
fseek (fp, 0, SEEK_END);
filelen = ftell (fp);
fseek (fp, 0, SEEK_SET);
@@ -197,7 +199,6 @@ namespace pan
if (ret < 0) goto fail;
- _certs.insert(server);
_cert_to_server[server] = cert;
return true;
@@ -226,7 +227,8 @@ namespace pan
if (import_from_file(*it)) ++cnt;
// get certs from ssl certs directory
- const char * ssldir = getenv("SSL_CERT_DIR");
+ char * ssldir(0);
+ ssldir = getenv("SSL_CERT_DIR");
if (!ssldir) ssldir = getenv("SSL_DIR");
if (!ssldir) return cnt;
@@ -273,8 +275,9 @@ namespace pan
CertStore :: remove_hard(const Quark& server)
{
char buf[2048];
- g_snprintf (buf, sizeof(buf), "%s%c%s.pem", _path.c_str(), G_DIR_SEPARATOR, server.c_str());
- unlink(buf);
+ std::string fn = _data.get_server_cert(server);
+ std::cerr<<"unlink "<<fn<<"\n";
+ unlink(fn.c_str());
}
void
@@ -317,9 +320,10 @@ namespace pan
debug("adding server cert "<<server<<" "<<cert);
if (!cert || server.empty()) return false;
+ std::cerr<<"adding cert for server "<<server<<"\n";
+
std::string addr; int port;
_data.get_server_addr(server, addr, port);
- _certs.insert(server);
_cert_to_server[server] = cert;
const char* buf(build_cert_name(addr).c_str());
diff --git a/pan/data/cert-store.h b/pan/data/cert-store.h
index 918f6fb..7e5abfd 100644
--- a/pan/data/cert-store.h
+++ b/pan/data/cert-store.h
@@ -52,7 +52,6 @@ namespace pan
private:
typedef std::set<Quark> certs_t;
- certs_t _certs;
certs_t _blacklist;
typedef std::map<Quark,gnutls_x509_crt_t> certs_m;
typedef std::pair<Quark,gnutls_x509_crt_t> certs_p;
@@ -86,20 +85,17 @@ namespace pan
{
if (_cert_to_server.count(s) > 0)
return _cert_to_server[s];
- std::cerr<<"server "<<s<<" cert to server "<<_cert_to_server.count(s)<<"\n";
- foreach (certs_m, _cert_to_server, it)
- std::cerr<<it->first<<" "<<it->second<<"\n";
return 0;
}
private:
- void remove_hard(const Quark&);
+ void remove_hard(const Quark& server);
public:
bool add (gnutls_x509_crt_t, const Quark&) ;
void remove (const Quark&);
- bool exist (const Quark& q) { return (_certs.count(q) > 0); }
+ bool exist (const Quark& q) { return (_cert_to_server.count(q) > 0); }
static std::string build_cert_name(std::string& host);
diff --git a/pan/gui/actions.cc b/pan/gui/actions.cc
index 7470f75..f11a6e6 100644
--- a/pan/gui/actions.cc
+++ b/pan/gui/actions.cc
@@ -427,11 +427,14 @@ namespace
NULL,
G_CALLBACK(do_show_servers_dialog) },
+#ifdef HAVE_GNUTLS
{ "show-sec-dialog", GTK_STOCK_DIALOG_AUTHENTICATION,
N_("Edit _SSL Certificates"), NULL,
NULL,
G_CALLBACK(do_show_sec_dialog) },
-
+#else
+ { "show-sec-dialog", NULL, NULL, NULL, NULL, NULL},
+#endif
{ "jump-to-group-tab", GTK_STOCK_JUMP_TO,
N_("Jump to _Group Tab"), "1",
NULL,
diff --git a/pan/gui/gui.cc b/pan/gui/gui.cc
index 958104b..cf64dc1 100644
--- a/pan/gui/gui.cc
+++ b/pan/gui/gui.cc
@@ -1039,13 +1039,7 @@ void GUI :: server_list_dialog_destroyed (GtkWidget *)
void GUI :: sec_dialog_destroyed (GtkWidget * w)
{
-// quarks_t empty_servers, all_servers (_data.get_servers());
-// foreach_const (quarks_t, all_servers, it) {
-// quarks_t tmp;
-// _data.server_get_groups (*it, tmp);
-// if (tmp.empty() && _data.get_server_limits(*it))
-// _queue.add_task (new TaskGroups (_data, *it));
-// }
+ // NOTE : unused for now
}
void GUI :: prefs_dialog_destroyed_cb (GtkWidget * w, gpointer self)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]