summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy McCurdy <andy@andymccurdy.com>2011-05-22 20:21:30 -0700
committerAndy McCurdy <andy@andymccurdy.com>2011-05-22 20:21:30 -0700
commit58390a7e6d94317f7d47e7056113ac5d98d658c7 (patch)
tree59171bcbe4262726d577c4887754731305d3be70
parentc2a5026ff53dabeefa0d6fbbde6f1c2102e56b34 (diff)
downloadredis-py-58390a7e6d94317f7d47e7056113ac5d98d658c7.tar.gz
more error checking for socket errors
-rw-r--r--redis/connection.py12
1 files changed, 7 insertions, 5 deletions
diff --git a/redis/connection.py b/redis/connection.py
index b5e7a49..af82372 100644
--- a/redis/connection.py
+++ b/redis/connection.py
@@ -23,9 +23,9 @@ class PythonParser(object):
if length is not None:
return self._fp.read(length+2)[:-2]
return self._fp.readline()[:-2]
- except socket.error, e:
+ except (socket.error, socket.timeout), e:
raise ConnectionError("Error while reading from socket: %s" % \
- e.args[1])
+ (e.args,))
def read_response(self):
response = self.read()
@@ -78,7 +78,11 @@ class HiredisParser(object):
def read_response(self):
response = self._reader.gets()
while response is False:
- buffer = self._sock.recv(4096)
+ try:
+ buffer = self._sock.recv(4096)
+ except (socket.error, socket.timeout), e:
+ raise ConnectionError("Error while reading from socket: %s" % \
+ (e.args,))
if not buffer:
raise ConnectionError("Socket closed on remote end")
self._reader.feed(buffer)
@@ -264,8 +268,6 @@ class ConnectionPool(object):
def release(self, connection):
"Releases the connection back to the pool"
- # assert self._connection == connection
- # self._in_use = False
self._in_use_connections.remove(connection)
self._available_connections.append(connection)