[Checkins] SVN: zc.resumelb/trunk/src/zc/resumelb/util.py Disconnecting can cause errors to be raised on recv. Who knew?
jim
cvs-admin at zope.org
Tue Mar 20 16:03:38 UTC 2012
Log message for revision 124650:
Disconnecting can cause errors to be raised on recv. Who knew?
Changed:
U zc.resumelb/trunk/src/zc/resumelb/util.py
-=-
Modified: zc.resumelb/trunk/src/zc/resumelb/util.py
===================================================================
--- zc.resumelb/trunk/src/zc/resumelb/util.py 2012-03-20 15:50:01 UTC (rev 124649)
+++ zc.resumelb/trunk/src/zc/resumelb/util.py 2012-03-20 16:03:35 UTC (rev 124650)
@@ -8,7 +8,7 @@
logger = logging.getLogger(__name__)
disconnected_errors = (errno.EPIPE, errno.ECONNRESET, errno.ENOTCONN,
- errno.ESHUTDOWN, errno.ECONNABORTED)
+ errno.ESHUTDOWN, errno.ECONNABORTED)
class Disconnected(Exception):
pass
@@ -16,7 +16,15 @@
def read_message(sock):
data = ''
while len(data) < 8:
- recieved = sock.recv(8-len(data))
+ try:
+ recieved = sock.recv(8-len(data))
+ except socket.error, err:
+ if err.args[0] in disconnected_errors:
+ logger.debug("write_message disconnected %s", sock)
+ raise Disconnected()
+ else:
+ raise
+
if not recieved:
logger.info("read_message disconnected %s", sock)
raise Disconnected()
More information about the checkins
mailing list