summaryrefslogtreecommitdiff
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
commit6c4b6c2d0f7739996fa5120c897ec1de800f7107 (patch)
treeaa04432c5220b7036f8d27d92275b9fd42999bc2
parentb03069794430cb9f86121f1672ab4e391a80589e (diff)
downloadqpid-python-6c4b6c2d0f7739996fa5120c897ec1de800f7107.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/qpid@1627553 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--python/qpid/connection08.py13
1 files changed, 10 insertions, 3 deletions
diff --git a/python/qpid/connection08.py b/python/qpid/connection08.py
index 49310fb537..7694114623 100644
--- a/python/qpid/connection08.py
+++ b/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()