summaryrefslogtreecommitdiff
path: root/src/connection.py
diff options
context:
space:
mode:
authorlouiz@4325f9fc-e183-4c21-96ce-0ab188b42d13 <louiz@4325f9fc-e183-4c21-96ce-0ab188b42d13>2010-03-24 18:01:22 +0000
committerlouiz@4325f9fc-e183-4c21-96ce-0ab188b42d13 <louiz@4325f9fc-e183-4c21-96ce-0ab188b42d13>2010-03-24 18:01:22 +0000
commit19d86ea5ea5f135c5ad229add1a0d173ac44d2c9 (patch)
treee8bab31fbb2b75cc31b26cc403183d1f136df152 /src/connection.py
parent899a33ae477df3dec4541cb86d65783677d37211 (diff)
downloadpoezio-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.py14
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