diff options
author | louiz@4325f9fc-e183-4c21-96ce-0ab188b42d13 <louiz@4325f9fc-e183-4c21-96ce-0ab188b42d13> | 2010-03-24 18:01:22 +0000 |
---|---|---|
committer | louiz@4325f9fc-e183-4c21-96ce-0ab188b42d13 <louiz@4325f9fc-e183-4c21-96ce-0ab188b42d13> | 2010-03-24 18:01:22 +0000 |
commit | 19d86ea5ea5f135c5ad229add1a0d173ac44d2c9 (patch) | |
tree | e8bab31fbb2b75cc31b26cc403183d1f136df152 /src/connection.py | |
parent | 899a33ae477df3dec4541cb86d65783677d37211 (diff) | |
download | poezio-19d86ea5ea5f135c5ad229add1a0d173ac44d2c9.tar.gz poezio-19d86ea5ea5f135c5ad229add1a0d173ac44d2c9.tar.bz2 poezio-19d86ea5ea5f135c5ad229add1a0d173ac44d2c9.tar.xz poezio-19d86ea5ea5f135c5ad229add1a0d173ac44d2c9.zip |
fixed #1140 (Display the error messages correctly. And also we can provide a password when joining a room)
Diffstat (limited to 'src/connection.py')
-rw-r--r-- | src/connection.py | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/connection.py b/src/connection.py index c514d964..bc4928e7 100644 --- a/src/connection.py +++ b/src/connection.py @@ -88,7 +88,7 @@ class Connection(threading.Thread): self.client.auth(None, "", self.resource) return True except TypeError: - self.handler.emit('error', msg=_('Error: Could not authenticate. Please make sure the server you chose (%s) supports anonymous authentication' % (config.get('server', '')))) # TODO msg + self.handler.emit('error', msg=_('Error: Could not authenticate. Please make sure the server you chose (%s) supports anonymous authentication' % (config.get('server', '')))) return None else: log.error('Non-anonymous connections not handled currently') @@ -102,9 +102,16 @@ class Connection(threading.Thread): self.client.RegisterHandler('iq', self.on_get_version, typ='get', ns=xmpp.NS_VERSION) self.client.RegisterHandler('presence', self.handler_presence) self.client.RegisterHandler('message', self.handler_message) - # self.client.RegisterHandler('message', self.handler_delayed_message, ns=xmpp.NS_DELAY) + + def error_message(self, stanza): + room_name = stanza.getFrom().getStripped() + self.handler.emit('error-message', room=room_name, error=stanza.getTag('error'), msg=stanza.getError()) + raise xmpp.protocol.NodeProcessed def handler_presence(self, connection, presence): + if presence.getType() == 'error': + self.error_message(presence) + return fro = presence.getFrom() to = presence.getAttr('to') if fro == to: # own presence @@ -120,6 +127,9 @@ class Connection(threading.Thread): raise xmpp.protocol.NodeProcessed def handler_message(self, connection, message): + if message.getType() == 'error': + self.error_message(message) + return self.handler.emit('room-message', stanza=message) raise xmpp.protocol.NodeProcessed |