diff options
author | Gordon Sim <gsim@apache.org> | 2010-04-27 16:49:58 +0000 |
---|---|---|
committer | Gordon Sim <gsim@apache.org> | 2010-04-27 16:49:58 +0000 |
commit | 825b92618ef6eba61ae6ab29ff8c0a08bad91b95 (patch) | |
tree | ecf658dcbfb11fe6670057cb994965868759e922 /python | |
parent | ad98e21d7691f74a9cbb309299ee0c3947f2e283 (diff) | |
download | qpid-python-825b92618ef6eba61ae6ab29ff8c0a08bad91b95.tar.gz |
add handling for sasl related failures during connection start
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@938558 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'python')
-rw-r--r-- | python/qpid/connection.py | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/python/qpid/connection.py b/python/qpid/connection.py index 39fd7d5ff8..2c61e5a51b 100644 --- a/python/qpid/connection.py +++ b/python/qpid/connection.py @@ -144,8 +144,10 @@ class Connection(Framer): self.delegate.start() self.thread.start() if not wait(self.condition, lambda: self.opened or self.failed, timeout): + self.thread.join() raise Timeout() if self.failed: + self.thread.join() raise ConnectionFailed(*self.close_code) def run(self): @@ -176,7 +178,14 @@ class Connection(Framer): seg_dec.write(*frame_dec.read()) op_dec.write(*seg_dec.read()) for op in op_dec.read(): - self.delegate.received(op) + try: + self.delegate.received(op) + except Closed, e: + self.close_code = (None, str(e)) + if not self.opened: + self.failed = True + self.closed = True + notify(self.condition) self.sock.close() def write_op(self, op): |