+ """Marks session as passively-closed ("in a non-clean fashion"), if nothing suggests otherwise.
+ Inteneded to be called from similar method in icq connection object.
+ Flag is used to determine whether it's necessary to re-create session."""
+ if self.active_close is None: self.active_close = False
+ self.removeMe()
+
def removeMe(self):
""" Safely removes the session object, including sending <presence type="unavailable"/> messages for each legacy related item on the user's contact list """
# Send offline presence to Jabber ID
@@ -105,6 +115,9 @@ class Session(jabw.JabberConnection):
LogEvent(INFO, self.jabberID)
+ # Mark session as closed by us, unless already set otherwise
+ if self.active_close is None: self.active_close = True
+
# Mark as dead
self.alive = False
self.ready = False
@@ -129,6 +142,17 @@ class Session(jabw.JabberConnection):