diff options
author | Yann Leboulanger <asterix@lagaule.org> | 2010-06-28 00:31:55 +0400 |
---|---|---|
committer | Yann Leboulanger <asterix@lagaule.org> | 2010-06-28 00:31:55 +0400 |
commit | af804641b6df77487f3863db5a474e2349100405 (patch) | |
tree | 4714db675fb0ade379fbc5b37ad4bb94cd4bad24 | |
parent | 60d9b234a7757031d1abf4ccf90242128056c362 (diff) |
stop message archiving for encrypted sessions. Fixes #5792
-rw-r--r-- | src/common/message_archiving.py | 7 | ||||
-rw-r--r-- | src/common/stanza_session.py | 7 |
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 |