plugin XEP-0374, XEP-0384: handle cases where "to" is not set in <message> for feedback_jid

This commit is contained in:
Goffi 2022-10-15 20:38:33 +02:00
commit a7f94cf875
2 changed files with 8 additions and 3 deletions

View file

@ -209,7 +209,10 @@ class XEP_0374:
if sender_jid.userhostJID() == client.jid.userhostJID():
# TODO: I've seen this cause an exception "builtins.KeyError: 'to'", seems
# like "to" isn't always set.
feedback_jid = jid.JID(message_elt["to"])
try:
feedback_jid = jid.JID(message_elt["to"])
except KeyError:
feedback_jid = client.server_jid
else:
feedback_jid = sender_jid

View file

@ -75,7 +75,6 @@ __all__ = [ # pylint: disable=unused-variable
"OMEMO"
]
log = cast(Logger, getLogger(__name__)) # type: ignore[no-untyped-call]
@ -1572,7 +1571,10 @@ class OMEMO:
if sender_jid.userhostJID() == client.jid.userhostJID():
# TODO: I've seen this cause an exception "builtins.KeyError: 'to'", seems
# like "to" isn't always set.
feedback_jid = jid.JID(message_elt["to"])
try:
feedback_jid = jid.JID(message_elt["to"])
except KeyError:
feedback_jid = client.server_jid
else:
feedback_jid = sender_jid