From eb6ac68d5c8f323ef7036a4daf4e3cc0e55bfc85 Mon Sep 17 00:00:00 2001
From: Allan Simon <simona@gobeta.com.cn>
Date: Fri, 31 Jan 2014 18:54:59 +0800
Subject: close #276, now we  trigger 'groupchat_message_error'  and 
 muc::ROOM::message_error when we receive a message type=error from the server

---
 sleekxmpp/plugins/xep_0045.py | 9 +++++++++
 1 file changed, 9 insertions(+)

(limited to 'sleekxmpp/plugins')

diff --git a/sleekxmpp/plugins/xep_0045.py b/sleekxmpp/plugins/xep_0045.py
index 6e3f10a9..9587fa1a 100644
--- a/sleekxmpp/plugins/xep_0045.py
+++ b/sleekxmpp/plugins/xep_0045.py
@@ -126,6 +126,7 @@ class XEP_0045(BasePlugin):
         # load MUC support in presence stanzas
         register_stanza_plugin(Presence, MUCPresence)
         self.xmpp.register_handler(Callback('MUCPresence', MatchXMLMask("<presence xmlns='%s' />" % self.xmpp.default_ns), self.handle_groupchat_presence))
+        self.xmpp.register_handler(Callback('MUCError', MatchXMLMask("<message xmlns='%s' type='error'><error/></message>" % self.xmpp.default_ns), self.handle_groupchat_error_message))
         self.xmpp.register_handler(Callback('MUCMessage', MatchXMLMask("<message xmlns='%s' type='groupchat'><body/></message>" % self.xmpp.default_ns), self.handle_groupchat_message))
         self.xmpp.register_handler(Callback('MUCSubject', MatchXMLMask("<message xmlns='%s' type='groupchat'><subject/></message>" % self.xmpp.default_ns), self.handle_groupchat_subject))
         self.xmpp.register_handler(Callback('MUCConfig', MatchXMLMask("<message xmlns='%s' type='groupchat'><x xmlns='http://jabber.org/protocol/muc#user'><status/></x></message>" % self.xmpp.default_ns), self.handle_config_change))
@@ -179,6 +180,14 @@ class XEP_0045(BasePlugin):
         self.xmpp.event('groupchat_message', msg)
         self.xmpp.event("muc::%s::message" % msg['from'].bare, msg)
 
+    def handle_groupchat_error_message(self, msg):
+        """ Handle a message error event in a muc.
+        """
+        self.xmpp.event('groupchat_message_error', msg)
+        self.xmpp.event("muc::%s::message_error" % msg['from'].bare, msg)
+
+
+
     def handle_groupchat_subject(self, msg):
         """ Handle a message coming from a muc indicating
         a change of subject (or announcing it when joining the room)
-- 
cgit v1.2.3