From 1c6ca838b5e46f1622248a462e3a9e3c4b7f82c9 Mon Sep 17 00:00:00 2001 From: Goffi Date: Mon, 4 May 2026 16:26:09 +0200 Subject: [PATCH] plugin XEP-0473: Don't try do load secrets if there is not encrypted elements: The plugin was trying to decrypt all pubsub events, without checking if there is "encrypted" element first, resulting in warning for all clear events. This patch fixes it by detecting element and exiting early if none is found. --- libervia/backend/plugins/plugin_xep_0473.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libervia/backend/plugins/plugin_xep_0473.py b/libervia/backend/plugins/plugin_xep_0473.py index 25f907b6..1d525825 100644 --- a/libervia/backend/plugins/plugin_xep_0473.py +++ b/libervia/backend/plugins/plugin_xep_0473.py @@ -757,6 +757,14 @@ class XEP_0473: f"Invalid event's items element, missing node: {items_elt.toXml()}" ) return + + has_encrypted = any( + next(item_elt.elements(NS_OXPS, "encrypted"), None) + for item_elt in items_elt.elements(pubsub.NS_PUBSUB_EVENT, "item") + ) + if not has_encrypted: + return + node_uri = uri.build_xmpp_uri("pubsub", path=pubsub_service.full(), node=node) shared_secrets = await self.load_secrets(client, node_uri) if shared_secrets is None: