summaryrefslogtreecommitdiff
path: root/qpid/python
diff options
context:
space:
mode:
authorKeith Wall <kwall@apache.org>2014-09-25 14:39:40 +0000
committerKeith Wall <kwall@apache.org>2014-09-25 14:39:40 +0000
commit12a27099d9b4bd8f0a35c36f24be2ddee848021d (patch)
tree180f284baa30e533598e587b518625c804d29853 /qpid/python
parent41a0f87c92e29043cb4325fa8eef9841472031fc (diff)
downloadqpid-python-12a27099d9b4bd8f0a35c36f24be2ddee848021d.tar.gz
QPID-6117: [Python Client 0-8..0-9] Ignore socket.error ENOTCONN when trying to shutdown a socket to prevent spurious exception when socket closed by peer
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1627553 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/python')
-rw-r--r--qpid/python/qpid/connection08.py13
1 files changed, 10 insertions, 3 deletions
diff --git a/qpid/python/qpid/connection08.py b/qpid/python/qpid/connection08.py
index 49310fb537..7694114623 100644
--- a/qpid/python/qpid/connection08.py
+++ b/qpid/python/qpid/connection08.py
@@ -23,7 +23,7 @@ to read and write Frame objects. This could be used by a client,
server, or even a proxy implementation.
"""
-import socket, codec, logging, qpid
+import socket, codec, errno, qpid
from cStringIO import StringIO
from codec import EOF
from compat import SHUT_RDWR
@@ -60,8 +60,15 @@ class SockIO:
pass
def close(self):
- self.sock.shutdown(SHUT_RDWR)
- self.sock.close()
+ try:
+ self.sock.shutdown(SHUT_RDWR)
+ except socket.error, e:
+ if (e.errno == errno.ENOTCONN):
+ pass
+ else:
+ raise
+ finally:
+ self.sock.close()
def connect(host, port, options = None):
sock = socket.socket()