Skip to content

Commit 6268781

Browse files
committed
Handling that socket.error's args is either (errno, "msg") or "msg"
1 parent 52e3827 commit 6268781

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

redis/client.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,12 @@ def connect(self, redis_instance):
5353
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
5454
sock.connect((self.host, self.port))
5555
except socket.error, e:
56-
raise ConnectionError("Error %s connecting to %s:%s. %s." % \
57-
(e.args[0], self.host, self.port, e.args[1]))
56+
# args for socket.error can either be (errno, "message") or just "message"
57+
if len(e.args) == 1:
58+
error_message = "Error connecting to %s:%s. %s." % (self.host, self.port, e.args[0])
59+
else:
60+
error_message = "Error %s connecting %s:%s. %s." % (e.args[0], self.host, self.port, e.args[1])
61+
raise ConnectionError(error_message)
5862
sock.setsockopt(socket.SOL_TCP, socket.TCP_NODELAY, 1)
5963
sock.settimeout(self.socket_timeout)
6064
self._sock = sock

0 commit comments

Comments
 (0)