diff sat/plugins/plugin_xep_0077.py @ 3400:77ad87763f32

plugin XEP-0077: disconnect client when deleting self account: where profile's XMPP account is deleted, its client must be explicitely disconnected to avoid automatic reconnection, which would obviously fail.
author Goffi <goffi@goffi.org>
date Thu, 12 Nov 2020 14:53:15 +0100
parents aafb53248872
children 8c25489bb79c
line wrap: on
line diff
--- a/sat/plugins/plugin_xep_0077.py	Thu Nov 12 14:53:15 2020 +0100
+++ b/sat/plugins/plugin_xep_0077.py	Thu Nov 12 14:53:15 2020 +0100
@@ -303,4 +303,8 @@
             iq_elt["to"] = to_jid.full()
         query_elt = iq_elt.addElement((NS_REG, "query"))
         query_elt.addElement("remove")
-        return iq_elt.send()
+        d = iq_elt.send()
+        if not to_jid or to_jid == jid.JID(client.jid.host):
+            d.addCallback(lambda __: client.entityDisconnect())
+        return d
+