Tidy /tls command

This commit is contained in:
James Booth
2015-11-11 00:57:38 +00:00
parent 1e34b9c914
commit 79c2b177a2

View File

@@ -196,13 +196,28 @@ cmd_tls(ProfWin *window, const char *const command, gchar **args)
#endif #endif
} else if (g_strcmp0(args[0], "trust") == 0) { } else if (g_strcmp0(args[0], "trust") == 0) {
#ifdef HAVE_LIBMESODE #ifdef HAVE_LIBMESODE
TLSCertificate *cert = jabber_get_tls_peer_cert(); jabber_conn_status_t conn_status = jabber_get_connection_status();
if (!tlscerts_exists(cert->fingerprint)) { if (conn_status != JABBER_CONNECTED) {
cons_show("Adding %s to trusted certificates.", cert->fingerprint); cons_show("You are not currently connected.");
tlscerts_add(cert); return TRUE;
} else {
cons_show("Certificate %s already trusted.", cert->fingerprint);
} }
if (!jabber_conn_is_secured()) {
cons_show("No TLS connection established");
return TRUE;
}
TLSCertificate *cert = jabber_get_tls_peer_cert();
if (!cert) {
cons_show("Error getting TLS certificate.");
return TRUE;
}
if (tlscerts_exists(cert->fingerprint)) {
cons_show("Certificate %s already trusted.", cert->fingerprint);
tlscerts_free(cert);
return TRUE;
}
cons_show("Adding %s to trusted certificates.", cert->fingerprint);
tlscerts_add(cert);
tlscerts_free(cert);
return TRUE; return TRUE;
#else #else
cons_show("Manual certificate trust only supported when built with libmesode."); cons_show("Manual certificate trust only supported when built with libmesode.");
@@ -262,13 +277,13 @@ cmd_tls(ProfWin *window, const char *const command, gchar **args)
return TRUE; return TRUE;
} }
TLSCertificate *cert = jabber_get_tls_peer_cert(); TLSCertificate *cert = jabber_get_tls_peer_cert();
if (cert) { if (!cert) {
cons_show_tlscert(cert); cons_show("Error getting TLS certificate.");
cons_show(""); return TRUE;
tlscerts_free(cert);
} else {
cons_show("Error getting TLS fingerprint.");
} }
cons_show_tlscert(cert);
cons_show("");
tlscerts_free(cert);
return TRUE; return TRUE;
#else #else
cons_show("Certificate fetching not supported."); cons_show("Certificate fetching not supported.");