diff sat/plugins/plugin_sec_otr.py @ 3226:2f406b762788

core (memory/encryption): encryption session are now restored on client connection
author Goffi <goffi@goffi.org>
date Sun, 22 Mar 2020 18:39:12 +0100
parents dcebc585c29f
children e756e0eb1be4
line wrap: on
line diff
--- a/sat/plugins/plugin_sec_otr.py	Sun Mar 22 18:35:22 2020 +0100
+++ b/sat/plugins/plugin_sec_otr.py	Sun Mar 22 18:39:12 2020 +0100
@@ -169,12 +169,12 @@
             feedback = _("/!\\ conversation with %(other_jid)s is now UNENCRYPTED") % {
                 "other_jid": self.peer.full()
             }
-            d = client.encryption.stop(self.peer, NS_OTR)
+            d = defer.ensureDeferred(client.encryption.stop(self.peer, NS_OTR))
             d.addCallback(self.stopCb, feedback=feedback)
             d.addErrback(self.stopEb)
             return
         elif state == potr.context.STATE_ENCRYPTED:
-            client.encryption.start(self.peer, NS_OTR)
+            defer.ensureDeferred(client.encryption.start(self.peer, NS_OTR))
             try:
                 trusted = self.isTrusted()
             except TypeError:
@@ -201,7 +201,7 @@
             feedback = D_("OTR conversation with {other_jid} is FINISHED").format(
                 other_jid=self.peer.full()
             )
-            d = client.encryption.stop(self.peer, NS_OTR)
+            d = defer.ensureDeferred(client.encryption.stop(self.peer, NS_OTR))
             d.addCallback(self.stopCb, feedback=feedback)
             d.addErrback(self.stopEb)
             return
@@ -808,7 +808,7 @@
         otrctx = client._otr_context_manager.getContextForUser(to_jid)
 
         if otrctx.state != potr.context.STATE_PLAINTEXT:
-            client.encryption.start(to_jid, NS_OTR)
+            defer.ensureDeferred(client.encryption.start(to_jid, NS_OTR))
             client.encryption.setEncryptionFlag(mess_data)
             if not mess_data["to"].resource:
                 # if not resource was given, we force it here