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()