fix: don't publish OMEMO keys if server doesn't support pubsub (upstream 01c781fc)

This commit is contained in:
2026-03-31 19:46:19 +03:00
parent 1bf7324970
commit e8b8a8d52e
2 changed files with 9 additions and 10 deletions

View File

@@ -352,8 +352,6 @@ omemo_generate_crypto_materials(ProfAccount* account)
void
omemo_publish_crypto_materials(void)
{
log_debug("[OMEMO] publish crypto materials");
if (omemo_ctx.loaded != TRUE) {
cons_show("OMEMO: cannot publish crypto materials before they are generated");
log_error("[OMEMO] cannot publish crypto materials before they are generated");

View File

@@ -116,6 +116,11 @@ omemo_devicelist_request(const char* const jid)
void
omemo_bundle_publish(gboolean first)
{
if (!connection_supports(XMPP_FEATURE_PUBSUB_PUBLISH_OPTIONS)) {
cons_show("OMEMO: Cannot publish bundle: no PUBSUB feature announced");
log_debug("[OMEMO] Cannot publish bundle: no PUBSUB feature announced");
return;
}
log_debug("[OMEMO] publish own OMEMO bundle");
xmpp_ctx_t* const ctx = connection_get_ctx();
unsigned char* identity_key = NULL;
@@ -141,14 +146,10 @@ omemo_bundle_publish(gboolean first)
g_list_free(lengths);
g_list_free(ids);
if (connection_supports(XMPP_FEATURE_PUBSUB_PUBLISH_OPTIONS)) {
stanza_attach_publish_options_va(ctx, iq,
4, // 2 * number of key-value pairs
"pubsub#persist_items", "true",
"pubsub#access_model", "open");
} else {
log_debug("[OMEMO] Cannot publish bundle: no PUBSUB feature announced");
}
stanza_attach_publish_options_va(ctx, iq,
4, // 2 * number of key-value pairs
"pubsub#persist_items", "true",
"pubsub#access_model", "open");
iq_id_handler_add(id, _omemo_bundle_publish_result, NULL, GINT_TO_POINTER(first));