[omemo] Adapt to nbxmpp changes

This commit is contained in:
lovetox
2020-10-11 16:42:07 +02:00
parent 46aa31dd81
commit 64b33cdbd4

View File

@@ -16,11 +16,9 @@
# XEP-0384: OMEMO Encryption # XEP-0384: OMEMO Encryption
import os
import time import time
from pathlib import Path from pathlib import Path
import nbxmpp
from nbxmpp.namespaces import Namespace from nbxmpp.namespaces import Namespace
from nbxmpp.protocol import NodeProcessed from nbxmpp.protocol import NodeProcessed
from nbxmpp.protocol import JID from nbxmpp.protocol import JID
@@ -30,6 +28,7 @@ from nbxmpp.const import Affiliation
from nbxmpp.structs import StanzaHandler from nbxmpp.structs import StanzaHandler
from nbxmpp.modules.omemo import create_omemo_message from nbxmpp.modules.omemo import create_omemo_message
from nbxmpp.modules.omemo import get_key_transport_message from nbxmpp.modules.omemo import get_key_transport_message
from nbxmpp.modules.util import is_error
from gajim.common import app from gajim.common import app
from gajim.common import configpaths from gajim.common import configpaths
@@ -38,6 +37,7 @@ from gajim.common.const import EncryptionData
from gajim.common.const import Trust as GajimTrust from gajim.common.const import Trust as GajimTrust
from gajim.common.modules.base import BaseModule from gajim.common.modules.base import BaseModule
from gajim.common.modules.util import event_node from gajim.common.modules.util import event_node
from gajim.common.modules.util import as_task
from gajim.plugins.plugins_i18n import _ from gajim.plugins.plugins_i18n import _
@@ -414,18 +414,17 @@ class OMEMO(BaseModule):
self._nbxmpp('OMEMO').set_bundle(self.backend.bundle, self._nbxmpp('OMEMO').set_bundle(self.backend.bundle,
self.backend.own_device) self.backend.own_device)
@as_task
def request_bundle(self, jid, device_id): def request_bundle(self, jid, device_id):
_task = yield
self._log.info('Fetch device bundle %s %s', device_id, jid) self._log.info('Fetch device bundle %s %s', device_id, jid)
self._nbxmpp('OMEMO').request_bundle( bundle = yield self._nbxmpp('OMEMO').request_bundle(
jid, jid,
device_id, device_id)
callback=self._bundle_received,
user_data=(jid, device_id))
def _bundle_received(self, bundle, user_data): if is_error(bundle) or bundle is None:
jid, device_id = user_data
if is_error_result(bundle):
self._log.info('Bundle request failed: %s %s: %s', self._log.info('Bundle request failed: %s %s: %s',
jid, device_id, bundle) jid, device_id, bundle)
return return
@@ -454,21 +453,20 @@ class OMEMO(BaseModule):
self.backend.update_devicelist(self._own_jid, [self.backend.own_device]) self.backend.update_devicelist(self._own_jid, [self.backend.own_device])
self.set_devicelist() self.set_devicelist()
@as_task
def request_devicelist(self, jid=None): def request_devicelist(self, jid=None):
_task = yield
if jid is None: if jid is None:
jid = self._own_jid jid = self._own_jid
if jid in self._query_for_devicelists: if jid in self._query_for_devicelists:
return return
self._nbxmpp('OMEMO').request_devicelist(
jid,
callback=self._devicelist_received,
user_data=jid)
self._query_for_devicelists.append(jid) self._query_for_devicelists.append(jid)
def _devicelist_received(self, devicelist, jid): devicelist = yield self._nbxmpp('OMEMO').request_devicelist(jid=jid)
if is_error_result(devicelist): if is_error(devicelist) or devicelist is None:
self._log.info('Devicelist request failed: %s %s', jid, devicelist) self._log.info('Devicelist request failed: %s %s', jid, devicelist)
devicelist = [] devicelist = []