Mercurial > libervia-backend
diff src/plugins/plugin_xep_0045.py @ 406:b03b38b20c18
plugin XEP-0045: send error on invalid room jid on _join
author | Goffi <goffi@goffi.org> |
---|---|
date | Sat, 08 Oct 2011 19:04:28 +0200 |
parents | 10b4f577d0c0 |
children | b4edea06ae12 |
line wrap: on
line diff
--- a/src/plugins/plugin_xep_0045.py Sat Oct 08 18:43:17 2011 +0200 +++ b/src/plugins/plugin_xep_0045.py Sat Oct 08 19:04:28 2011 +0200 @@ -154,9 +154,19 @@ return self.clients[profile].join(room_jid, nick, history_options, password).addCallbacks(self.__room_joined, self.__err_joining_room, callbackKeywords={'profile':profile}, errbackKeywords={'profile':profile}) - def _join(self, room_jid, nick, options={}, profile_key='@DEFAULT@'): + def _join(self, room_jid_s, nick, options={}, profile_key='@DEFAULT@'): """join method used by bridge: use the _join method, but doesn't return any deferred""" - d = self.join(jid.JID(room_jid), nick, options, profile_key) + profile = self.host.memory.getProfileName(profile_key) + if not self.__check_profile(profile): + return + try: + room_jid = jid.JID(room_jid_s) + except: + mess = _("Invalid room jid: %s") % room_jid_s + warning(mess) + self.host.bridge.newAlert(mess, _("Group chat error"), "ERROR", profile) + return + d = self.join(jid.JID(room_jid), nick, options, profile) d.addErrback(lambda x: warning(_('Error while joining room'))) #TODO: error management + signal in bridge def getHandler(self, profile):