diff options
author | Michael Vetter <jubalh@iodoru.org> | 2021-11-30 15:31:51 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-30 15:31:51 +0100 |
commit | 7a8f0e487370d952560585e414e83441de602bd6 (patch) | |
tree | b56e79edbd66e92174edf168b5538b1d0a2743a5 | |
parent | 9efceb8240c228fd0979365faa40559dcaa020c6 (diff) | |
parent | fee23b55f08c3635731aa625e31bd54f14282cb6 (diff) | |
download | profani-tty-7a8f0e487370d952560585e414e83441de602bd6.tar.gz |
Merge pull request #1610 from nandesu-utils/master
Fix message encryption for sender devices
-rw-r--r-- | src/omemo/omemo.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/omemo/omemo.c b/src/omemo/omemo.c index e1126e62..4d53ad0c 100644 --- a/src/omemo/omemo.c +++ b/src/omemo/omemo.c @@ -84,6 +84,7 @@ static unsigned char* _omemo_fingerprint_decode(const char* const fingerprint, s static char* _omemo_unformat_fingerprint(const char* const fingerprint_formatted); static void _cache_device_identity(const char* const jid, uint32_t device_id, ec_public_key* identity); static void _g_hash_table_free(GHashTable* hash_table); +static void _acquire_sender_devices_list(void); typedef gboolean (*OmemoDeviceListHandler)(const char* const jid, GList* device_list); @@ -384,21 +385,26 @@ omemo_publish_crypto_materials(void) return; } + omemo_bundle_publish(true); +} + +static void _acquire_sender_devices_list(void) { char* barejid = connection_get_barejid(); - /* Ensure we get our current device list, and it gets updated with our - * device_id */ g_hash_table_insert(omemo_ctx.device_list_handler, strdup(barejid), _handle_own_device_list); omemo_devicelist_request(barejid); - omemo_bundle_publish(true); - free(barejid); } void omemo_start_sessions(void) { + // before any session may be started, a list on + // available sender devices must be acquired + log_debug("[OMEMO] Acquiring sender devices list"); + _acquire_sender_devices_list(); + GSList* contacts = roster_get_contacts(ROSTER_ORD_NAME); if (contacts) { GSList* curr; |