From 6e596e3db0b422335c07ecdec2ae55e4b5c8b838 Mon Sep 17 00:00:00 2001
From: Brendan Taylor <bct@diffeq.com>
Date: Sat, 11 Oct 2008 22:02:20 +0000
Subject: [PATCH] renegotiate e2e after somebody reconnects (still doesn't work
 for PM)

---
 src/session.py | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/src/session.py b/src/session.py
index fadada2e63..c736857900 100644
--- a/src/session.py
+++ b/src/session.py
@@ -44,17 +44,18 @@ class ChatControlSession(stanza_session.EncryptedStanzaSession):
 
 		self.control = None
 
-	def acknowledge_termination(self):
+	def detach_from_control(self):
 		if self.control:
+			self.control.no_autonegotiation = False
 			self.control.set_session(None)
 
+	def acknowledge_termination(self):
+		self.detach_from_control()
 		stanza_session.EncryptedStanzaSession.acknowledge_termination(self)
 
 	def terminate(self):
 		stanza_session.EncryptedStanzaSession.terminate(self)
-
-		if self.control:
-			self.control.set_session(None)
+		self.detach_from_control()
 
 	# extracts chatstate from a <message/> stanza
 	def get_chatstate(self, msg, msgtxt):
-- 
GitLab