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 | 93e0f5c0349f42f454d596955ab84d563c55befb (patch) | |
| tree | 1d5eb193f3f0842c128c4c4adefadf1947f5b636 /qpid/python | |
| parent | 0550140874c6dc9e0cdb132568d05b2bfe67449e (diff) | |
| download | qpid-python-93e0f5c0349f42f454d596955ab84d563c55befb.tar.gz | |
add handling for sasl related failures during connection start
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@938558 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/python')
| -rw-r--r-- | qpid/python/qpid/connection.py | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/qpid/python/qpid/connection.py b/qpid/python/qpid/connection.py index 39fd7d5ff8..2c61e5a51b 100644 --- a/qpid/python/qpid/connection.py +++ b/qpid/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): |
