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
diff --git a/qpid/connection08.py b/qpid/connection08.py
index 49310fb..7694114 100644
--- a/qpid/connection08.py
+++ b/qpid/connection08.py
@@ -23,7 +23,7 @@
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 @@
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()