changeset 3133:87b8808ac49d

plugin XEP-0198: don't crash when xmlstream has been closed
author Goffi <goffi@goffi.org>
date Tue, 28 Jan 2020 22:26:12 +0100 (2020-01-28)
parents b64dd7c1496d
children 48eafdab1c34
files sat/plugins/plugin_xep_0198.py
diffstat 1 files changed, 11 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/sat/plugins/plugin_xep_0198.py	Mon Jan 27 19:53:31 2020 +0100
+++ b/sat/plugins/plugin_xep_0198.py	Tue Jan 28 22:26:12 2020 +0100
@@ -1,8 +1,7 @@
 #!/usr/bin/env python3
-# -*- coding: utf-8 -*-
 
-# SàT plugin for managing raw XML log
-# Copyright (C) 2011  Jérôme Poisson (goffi@goffi.org)
+# SàT plugin for managing Stream-Management
+# Copyright (C) 2009-2020  Jérôme Poisson (goffi@goffi.org)
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU Affero General Public License as published by
@@ -510,11 +509,16 @@
     def onAckTimeOut(self, client):
         """Called when a requested ACK has not been received in time"""
         log.info(_("Ack was not received in time, aborting connection"))
-        transport = client.xmlstream.transport
-        if transport is None:
-            log.warning("transport was already removed")
+        try:
+            xmlstream = client.xmlstream
+        except AttributeError:
+            log.warning("xmlstream has already been terminated")
         else:
-            transport.abortConnection()
+            transport = xmlstream.transport
+            if transport is None:
+                log.warning("transport was already removed")
+            else:
+                transport.abortConnection()
         client._xep_0198_session.req_timer = None