From a68564e68f1abb866dc96d44d4f2ff2c2a05a730 Mon Sep 17 00:00:00 2001 From: Goffi Date: Thu, 6 Oct 2022 16:02:00 +0200 Subject: [PATCH] plugin XEP-0420: fix exception on missing `from` or `to`: fix exception raised on missing `from` or `to` attribute when the policy doesn't require them. Patch made by Syndace --- sat/plugins/plugin_xep_0420.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/sat/plugins/plugin_xep_0420.py b/sat/plugins/plugin_xep_0420.py index 28fbff52..7902a49b 100644 --- a/sat/plugins/plugin_xep_0420.py +++ b/sat/plugins/plugin_xep_0420.py @@ -339,26 +339,26 @@ class XEP_0420: # pylint: disable=invalid-name if profile.to_policy is not SCEAffixPolicy.NOT_NEEDED: recipient = stanza.getAttribute("to", None) - if recipient is None: + if recipient is not None: + to_element = envelope.addElement((NS_SCE, "to")) + to_element["jid"] = jid.JID(recipient).userhost() + elif profile.to_policy is SCEAffixPolicy.REQUIRED: raise ValueError( " affix requested, but stanza doesn't have the 'to' attribute" " set." ) - to_element = envelope.addElement((NS_SCE, "to")) - to_element["jid"] = jid.JID(recipient).userhost() - if profile.from_policy is not SCEAffixPolicy.NOT_NEEDED: sender = stanza.getAttribute("from", None) - if sender is None: + if sender is not None: + from_element = envelope.addElement((NS_SCE, "from")) + from_element["jid"] = jid.JID(sender).userhost() + elif profile.from_policy is SCEAffixPolicy.REQUIRED: raise ValueError( " affix requested, but stanza doesn't have the 'from'" " attribute set." ) - from_element = envelope.addElement((NS_SCE, "from")) - from_element["jid"] = jid.JID(sender).userhost() - for affix, policy in profile.custom_policies.items(): if policy is not SCEAffixPolicy.NOT_NEEDED: envelope.addChild(affix.create(stanza))