[omemo] Fix sending messages to a room fail
We would receive a KeyError for jids we dont have in the roster, now we skip them and print a warning. Fixes #173
This commit is contained in:
@@ -308,6 +308,8 @@ class OmemoState:
|
|||||||
continue
|
continue
|
||||||
if jid_to in encrypted_jids: # We already encrypted to this JID
|
if jid_to in encrypted_jids: # We already encrypted to this JID
|
||||||
continue
|
continue
|
||||||
|
if jid_to not in self.session_ciphers:
|
||||||
|
continue
|
||||||
for rid, cipher in self.session_ciphers[jid_to].items():
|
for rid, cipher in self.session_ciphers[jid_to].items():
|
||||||
try:
|
try:
|
||||||
if self.isTrusted(jid_to, rid) == TRUSTED:
|
if self.isTrusted(jid_to, rid) == TRUSTED:
|
||||||
@@ -368,8 +370,12 @@ class OmemoState:
|
|||||||
jid_to = self.plugin.groupchat[room][nick]
|
jid_to = self.plugin.groupchat[room][nick]
|
||||||
if jid_to == self.own_jid:
|
if jid_to == self.own_jid:
|
||||||
continue
|
continue
|
||||||
for device in self.device_ids[jid_to]:
|
try:
|
||||||
devicelist.append((jid_to, device))
|
for device in self.device_ids[jid_to]:
|
||||||
|
devicelist.append((jid_to, device))
|
||||||
|
except KeyError:
|
||||||
|
log.warning('no device ids found for %s', jid_to)
|
||||||
|
continue
|
||||||
return devicelist
|
return devicelist
|
||||||
|
|
||||||
if jid == self.own_jid:
|
if jid == self.own_jid:
|
||||||
|
|||||||
Reference in New Issue
Block a user