From 0911fe3e588346c5562af3891dbbe14932f0d131 Mon Sep 17 00:00:00 2001 From: Fantix King Date: Fri, 27 Dec 2013 13:25:31 +0800 Subject: [PATCH] Fix indexing exceptions (ex[0]) by using args (ex.args[0]), refs #38 --- examples/geventsendfile.py | 2 +- gevent/baseserver.py | 2 +- gevent/server.py | 4 ++-- gevent/socket.py | 2 +- gevent/ssl.py | 2 +- greentest/test__socket_ex.py | 2 +- greentest/test__socket_timeout.py | 1 - 7 files changed, 7 insertions(+), 8 deletions(-) diff --git a/examples/geventsendfile.py b/examples/geventsendfile.py index 728cda3bc..17d4c93dc 100644 --- a/examples/geventsendfile.py +++ b/examples/geventsendfile.py @@ -15,7 +15,7 @@ def gevent_sendfile(out_fd, in_fd, offset, count): #print('%s: sent %s [%d%%]' % (out_fd, sent, 100*total_sent/count)) total_sent += sent except OSError as ex: - if ex[0] == EAGAIN: + if ex.args[0] == EAGAIN: wait_write(out_fd) else: raise diff --git a/gevent/baseserver.py b/gevent/baseserver.py index 3d120fe70..f1039cc33 100644 --- a/gevent/baseserver.py +++ b/gevent/baseserver.py @@ -284,7 +284,7 @@ def serve_forever(self, stop_timeout=None): Greenlet.spawn(self.stop, timeout=stop_timeout).join() def is_fatal_error(self, ex): - return isinstance(ex, _socket.error) and ex[0] in self.fatal_errors + return isinstance(ex, _socket.error) and ex.args[0] in self.fatal_errors def _extract_family(host): diff --git a/gevent/server.py b/gevent/server.py index aefd6269c..afd4819fd 100644 --- a/gevent/server.py +++ b/gevent/server.py @@ -92,7 +92,7 @@ def do_read(self): try: client_socket, address = self.socket.accept() except _socket.error as err: - if err[0] == EWOULDBLOCK: + if err.args[0] == EWOULDBLOCK: return raise return socket(_sock=client_socket), address @@ -131,7 +131,7 @@ def do_read(self): try: data, address = self._socket.recvfrom(8192) except _socket.error as err: - if err[0] == EWOULDBLOCK: + if err.args[0] == EWOULDBLOCK: return raise return data, address diff --git a/gevent/socket.py b/gevent/socket.py index 530b55c03..5050bdb08 100644 --- a/gevent/socket.py +++ b/gevent/socket.py @@ -303,7 +303,7 @@ def accept(self): client_socket, address = sock.accept() break except error as ex: - if ex[0] != EWOULDBLOCK or self.timeout == 0.0: + if ex.args[0] != EWOULDBLOCK or self.timeout == 0.0: raise sys.exc_clear() self._wait(self._read_event) diff --git a/gevent/ssl.py b/gevent/ssl.py index a0cd043e7..357c1bff6 100644 --- a/gevent/ssl.py +++ b/gevent/ssl.py @@ -71,7 +71,7 @@ def __init__(self, sock, keyfile=None, certfile=None, try: socket.getpeername(self) except socket_error as e: - if e[0] != errno.ENOTCONN: + if e.args[0] != errno.ENOTCONN: raise # no, no connection yet self._sslobj = None diff --git a/greentest/test__socket_ex.py b/greentest/test__socket_ex.py index 0b19dd42e..48b968a6a 100644 --- a/greentest/test__socket_ex.py +++ b/greentest/test__socket_ex.py @@ -12,7 +12,7 @@ def test(self): try: sock.send('a', timeout=1) except socket.error as ex: - if ex[0] != 9: + if ex.args[0] != 9: raise diff --git a/greentest/test__socket_timeout.py b/greentest/test__socket_timeout.py index f37d4c71a..c1fe6d3c6 100644 --- a/greentest/test__socket_timeout.py +++ b/greentest/test__socket_timeout.py @@ -31,7 +31,6 @@ def test(self): except socket.error as ex: self.assertEqual(ex.args, ('timed out',)) self.assertEqual(str(ex), 'timed out') - self.assertEqual(ex[0], 'timed out') finally: sock.close() finally: