Store current TLS certificate fingerpint in memory for reconnect

This commit is contained in:
James Booth
2015-11-09 20:57:26 +00:00
parent b3737b225f
commit 4cbfb88814
4 changed files with 47 additions and 0 deletions

View File

@@ -51,6 +51,8 @@ static void _save_tlscerts(void);
static Autocomplete certs_ac;
static char *current_fp;
void
tlscerts_init(void)
{
@@ -73,6 +75,32 @@ tlscerts_init(void)
autocomplete_add(certs_ac, groups[i]);
}
g_strfreev(groups);
current_fp = NULL;
}
void
tlscerts_set_current(const char *const fp)
{
if (current_fp) {
free(current_fp);
}
current_fp = strdup(fp);
}
char*
tlscerts_get_current(void)
{
return current_fp;
}
void
tlscerts_clear_current(void)
{
if (current_fp) {
free(current_fp);
current_fp = NULL;
}
}
gboolean
@@ -223,6 +251,10 @@ tlscerts_close(void)
{
g_key_file_free(tlscerts);
tlscerts = NULL;
free(current_fp);
current_fp = NULL;
autocomplete_free(certs_ac);
}

View File

@@ -50,6 +50,12 @@ TLSCertificate* tlscerts_new(const char *const fingerprint, const char *const do
const char *const organisation, const char *const email,
const char *const notbefore, const char *const notafter);
void tlscerts_set_current(const char *const fp);
char* tlscerts_get_current(void);
void tlscerts_clear_current(void);
gboolean tlscerts_exists(const char *const fingerprint);
void tlscerts_add(TLSCertificate *cert);