[omemo] Adapt to nbxmpp changes
This commit is contained in:
@@ -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 = []
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user