From 6c28b49e7f1d0a9203270aa2644080c296a995dd Mon Sep 17 00:00:00 2001
From: Georg Lukas <georg@op-co.de>
Date: Sat, 28 Mar 2020 20:58:21 +0100
Subject: XEP-0198: unset end_session_on_disconnect on resume/enable

---
 slixmpp/plugins/xep_0198/stream_management.py | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/slixmpp/plugins/xep_0198/stream_management.py b/slixmpp/plugins/xep_0198/stream_management.py
index 2b68faec..0200646a 100644
--- a/slixmpp/plugins/xep_0198/stream_management.py
+++ b/slixmpp/plugins/xep_0198/stream_management.py
@@ -83,10 +83,6 @@ class XEP_0198(BasePlugin):
         self.xmpp.register_stanza(stanza.Ack)
         self.xmpp.register_stanza(stanza.RequestAck)
 
-        # Only end the session when a </stream> element is sent,
-        # not just because the connection has died.
-        self.xmpp.end_session_on_disconnect = False
-
         # Register the feature twice because it may be ordered two
         # different ways: enabling after binding and resumption
         # before binding.
@@ -246,6 +242,7 @@ class XEP_0198(BasePlugin):
         self.enabled_in = True
         self.handled = 0
         self.xmpp.event('sm_enabled', stanza)
+        self.xmpp.end_session_on_disconnect = False
 
     def _handle_resumed(self, stanza):
         """Finish resuming a stream by resending unacked stanzas.
@@ -258,6 +255,7 @@ class XEP_0198(BasePlugin):
         for id, stanza in self.unacked_queue:
             self.xmpp.send(stanza, use_filters=False)
         self.xmpp.event('session_resumed', stanza)
+        self.xmpp.end_session_on_disconnect = False
 
     def _handle_failed(self, stanza):
         """
-- 
cgit v1.2.3