about summary refs log tree commit diff stats
path: root/src/omemo/store.c
diff options
context:
space:
mode:
authorPaul Fariello <paul@fariello.eu>2019-06-07 21:00:32 +0200
committerPaul Fariello <paul@fariello.eu>2019-06-07 23:43:40 +0200
commit5731a7c4729f75819b700c1e9b37badcf40a71eb (patch)
tree1c8f4debd4c05762562feb74ca8c932d4cee762d /src/omemo/store.c
parent172436a83f5cae500ce73d7cb00d0cfbd4a84c8d (diff)
downloadprofani-tty-5731a7c4729f75819b700c1e9b37badcf40a71eb.tar.gz
Remove OMEMO session when untrusting a fingerprint
We have to store known_devices in a long term fashion otherwise we might
not be able to delete session if it is remove from device list server
side.
Diffstat (limited to 'src/omemo/store.c')
-rw-r--r--src/omemo/store.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/omemo/store.c b/src/omemo/store.c
index 76b7449c..4fa77d63 100644
--- a/src/omemo/store.c
+++ b/src/omemo/store.c
@@ -148,7 +148,14 @@ delete_session(const signal_protocol_address *address, void *user_data)
         return SG_SUCCESS;
     }
 
-    return g_hash_table_remove(device_store, GINT_TO_POINTER(address->device_id));
+    g_hash_table_remove(device_store, GINT_TO_POINTER(address->device_id));
+
+    char *device_id_str = g_strdup_printf("%d", address->device_id);
+    g_key_file_remove_key(omemo_sessions_keyfile(), address->name, device_id_str, NULL);
+    g_free(device_id_str);
+    omemo_sessions_keyfile_save();
+
+    return SG_SUCCESS;
 }
 
 int