diff options
author | Michael Vetter <jubalh@iodoru.org> | 2021-06-01 09:46:35 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-01 09:46:35 +0200 |
commit | 45c930eaa565752062ca5acd4df0cb3003fbca88 (patch) | |
tree | ae493971f07003eaf2def053dc882f7933b67dad /src | |
parent | 956fd547c1beaeb1254b2899f1f3576f5511128a (diff) | |
parent | 41913a0aea082c953952fe31d81c72a101d2cca9 (diff) | |
download | profani-tty-45c930eaa565752062ca5acd4df0cb3003fbca88.tar.gz |
Merge pull request #1548 from DebXWoody/bugfix/bugfix1538
OMEMO - Notify user when unable to publish own device list
Diffstat (limited to 'src')
-rw-r--r-- | src/omemo/omemo.c | 5 | ||||
-rw-r--r-- | src/xmpp/omemo.c | 16 |
2 files changed, 19 insertions, 2 deletions
diff --git a/src/omemo/omemo.c b/src/omemo/omemo.c index b6c7585d..192d3d2a 100644 --- a/src/omemo/omemo.c +++ b/src/omemo/omemo.c @@ -1335,14 +1335,15 @@ _handle_own_device_list(const char* const jid, GList* device_list) { // We didn't find the own device id -> publish if (!g_list_find(device_list, GINT_TO_POINTER(omemo_ctx.device_id))) { - log_debug("[OMEMO] No device id for our device? publish device list..."); + cons_show("Could not find own OMEMO device ID. Going to publish own device ID: %d", GINT_TO_POINTER(omemo_ctx.device_id)); + log_debug("[OMEMO] No device ID for our device. Publishing device list"); device_list = g_list_copy(device_list); device_list = g_list_append(device_list, GINT_TO_POINTER(omemo_ctx.device_id)); g_hash_table_insert(omemo_ctx.device_list, strdup(jid), device_list); omemo_devicelist_publish(device_list); } - log_debug("[OMEMO] Request OMEMO Bundles for my devices..."); + log_debug("[OMEMO] Request OMEMO Bundles for our devices"); GList* device_id; for (device_id = device_list; device_id != NULL; device_id = device_id->next) { omemo_bundle_request(jid, GPOINTER_TO_INT(device_id->data), omemo_start_device_session_handle_bundle, free, strdup(jid)); diff --git a/src/xmpp/omemo.c b/src/xmpp/omemo.c index 773d6224..54cd12ad 100644 --- a/src/xmpp/omemo.c +++ b/src/xmpp/omemo.c @@ -51,6 +51,8 @@ static int _omemo_bundle_publish_result(xmpp_stanza_t* const stanza, void* const static int _omemo_bundle_publish_configure(xmpp_stanza_t* const stanza, void* const userdata); static int _omemo_bundle_publish_configure_result(xmpp_stanza_t* const stanza, void* const userdata); +static int _omemo_device_list_publish_result(xmpp_stanza_t* const stanza, void* const userdata); + void omemo_devicelist_subscribe(void) { @@ -71,6 +73,8 @@ omemo_devicelist_publish(GList* device_list) stanza_attach_publish_options(ctx, iq, "pubsub#access_model", "open"); } + iq_id_handler_add(xmpp_stanza_get_id(iq), _omemo_device_list_publish_result, NULL, NULL); + iq_send_stanza(iq); xmpp_stanza_release(iq); } @@ -608,3 +612,15 @@ _omemo_bundle_publish_configure_result(xmpp_stanza_t* const stanza, void* const return 0; } + +static int +_omemo_device_list_publish_result(xmpp_stanza_t* const stanza, void* const userdata) +{ + const char* type = xmpp_stanza_get_type(stanza); + if (g_strcmp0(type, STANZA_TYPE_ERROR) == 0) { + cons_show_error("Unable to publish own OMEMO device list"); + log_error("[OMEMO] Publishing device list failed"); + return 0; + } + return 0; +} |