Welcome to mirror list, hosted at ThFree Co, Russian Federation.

dev.gajim.org/gajim/gajim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYann Leboulanger <asterix@lagaule.org>2010-06-28 00:31:55 +0400
committerYann Leboulanger <asterix@lagaule.org>2010-06-28 00:31:55 +0400
commitaf804641b6df77487f3863db5a474e2349100405 (patch)
tree4714db675fb0ade379fbc5b37ad4bb94cd4bad24
parent60d9b234a7757031d1abf4ccf90242128056c362 (diff)
stop message archiving for encrypted sessions. Fixes #5792
-rw-r--r--src/common/message_archiving.py7
-rw-r--r--src/common/stanza_session.py7
2 files changed, 14 insertions, 0 deletions
diff --git a/src/common/message_archiving.py b/src/common/message_archiving.py
index a9b46f039..548240459 100644
--- a/src/common/message_archiving.py
+++ b/src/common/message_archiving.py
@@ -76,6 +76,13 @@ class ConnectionArchive:
item.setAttr('jid', jid)
self.connection.send(iq_)
+ def stop_archiving_session(self, thread_id):
+ iq_ = common.xmpp.Iq('set')
+ pref = iq_.setTag('pref', namespace=common.xmpp.NS_ARCHIVE)
+ session = pref.setTag('session', attrs={'thread': thread_id,
+ 'save': 'false', 'otr': 'concede'})
+ self.connection.send(iq_)
+
def get_item_pref(self, jid):
jid = common.xmpp.JID(jid)
if unicode(jid) in self.items:
diff --git a/src/common/stanza_session.py b/src/common/stanza_session.py
index 1978f55f3..c5bcf09b5 100644
--- a/src/common/stanza_session.py
+++ b/src/common/stanza_session.py
@@ -287,6 +287,9 @@ class ArchivingStanzaSession(StanzaSession):
if self.control:
self.control.print_archiving_session_details()
+ def stop_archiving_for_session(self):
+ self.conn.stop_archiving_session(self.thread_id)
+
class EncryptedStanzaSession(ArchivingStanzaSession):
"""
@@ -1035,6 +1038,8 @@ class EncryptedStanzaSession(ArchivingStanzaSession):
if self.control:
self.control.print_esession_details()
+ self.stop_archiving_for_session()
+
def final_steps_alice(self, form):
srs = ''
srses = secrets.secrets().retained_secrets(self.conn.name,
@@ -1075,6 +1080,8 @@ class EncryptedStanzaSession(ArchivingStanzaSession):
if self.control:
self.control.print_esession_details()
+ self.stop_archiving_for_session()
+
def do_retained_secret(self, k, old_srs):
"""
Calculate the new retained secret. determine if the user needs to check