plugin XEP-0166: added delayedContentTerminate to terminate a content inside a handler

This commit is contained in:
Goffi 2015-11-17 19:41:30 +01:00
commit c3301733fb

View file

@ -25,6 +25,7 @@ log = getLogger(__name__)
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 @@ class XEP_0166(object):
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