# HG changeset patch # User Goffi # Date 1447785690 -3600 # Node ID d05f9179fe22ec2edc527751d27bd452879602cc # Parent 1e05b776a55b28676850cd240800febeb71212fa plugin XEP-0166: added delayedContentTerminate to terminate a content inside a handler diff -r 1e05b776a55b -r d05f9179fe22 src/plugins/plugin_xep_0166.py --- a/src/plugins/plugin_xep_0166.py Tue Nov 17 19:40:37 2015 +0100 +++ b/src/plugins/plugin_xep_0166.py Tue Nov 17 19:41:30 2015 +0100 @@ -25,6 +25,7 @@ from sat.core import exceptions from twisted.words.protocols.jabber import jid from twisted.internet import defer +from twisted.internet import reactor from wokkel import disco, iwokkel from twisted.words.protocols.jabber import error from twisted.words.protocols.jabber import xmlstream @@ -360,6 +361,13 @@ d.addErrback(self._iqError, sid, client) yield d + def delayedContentTerminate(self, *args, **kwargs): + """Put contentTerminate in queue but don't execute immediately + + This is used to terminate a content inside a handler, to avoid modifying contents + """ + reactor.callLater(0, self.contentTerminate, *args, **kwargs) + def contentTerminate(self, session, content_name, reason=REASON_SUCCESS, profile=C.PROF_KEY_NONE): """Terminate and remove a content