changeset 1573:6338677f3a89

core (client): added a sendError method to easily build error response from <IQ\> stanza
author Goffi <goffi@goffi.org>
date Wed, 11 Nov 2015 14:56:05 +0100
parents 6a6fe840c3a6
children babd97d80049
files src/core/sat_main.py src/core/xmpp.py
diffstat 2 files changed, 11 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/core/sat_main.py	Sun Nov 08 15:16:14 2015 +0100
+++ b/src/core/sat_main.py	Wed Nov 11 14:56:05 2015 +0100
@@ -478,6 +478,7 @@
     def getJidNStream(self, profile_key):
         """Convenient method to get jid and stream from profile key
         @return: tuple (jid, xmlstream) from profile, can be None"""
+        # TODO: deprecate this method (getClient is enough)
         profile = self.memory.getProfileName(profile_key)
         if not profile or not self.profiles[profile].isConnected():
             return (None, None)
--- a/src/core/xmpp.py	Sun Nov 08 15:16:14 2015 +0100
+++ b/src/core/xmpp.py	Wed Nov 11 14:56:05 2015 +0100
@@ -21,6 +21,7 @@
 from sat.core.constants import Const as C
 from twisted.internet import task, defer
 from twisted.words.protocols.jabber import jid, xmlstream
+from twisted.words.protocols.jabber import error
 from wokkel import client, disco, xmppim, generic, delay, iwokkel
 from sat.core.log import getLogger
 log = getLogger(__name__)
@@ -59,6 +60,15 @@
         iq_elt.timeout = timeout
         return iq_elt
 
+    def sendError(self, iq_elt, condition):
+        """Send error stanza build from iq_elt
+
+        @param iq_elt(domish.Element): initial IQ element
+        @param condition(unicode): error condition
+        """
+        iq_error_elt = error.StanzaError(condition).toResponse(iq_elt)
+        self.xmlstream.send(iq_error_elt)
+
     def _authd(self, xmlstream):
         if not self.host_app.trigger.point("XML Initialized", xmlstream, self.profile):
             return