From f5fdfd8a9f17e0fe213a9cf54acae84e4bc31462 Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Tue, 30 Jul 2013 09:42:13 +1200 Subject: Clarify the interface for flush and close methods. --- netlib/tcp.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'netlib/tcp.py') diff --git a/netlib/tcp.py b/netlib/tcp.py index 69ad2da5..123c6515 100644 --- a/netlib/tcp.py +++ b/netlib/tcp.py @@ -93,7 +93,7 @@ class Writer(_FileLike): if hasattr(self.o, "flush"): try: self.o.flush() - except socket.error, v: + except (socket.error, IOError), v: raise NetLibDisconnect(str(v)) def write(self, v): @@ -215,7 +215,7 @@ class TCPClient: connection.connect((addr, self.port)) self.rfile = Reader(connection.makefile('rb', self.rbufsize)) self.wfile = Writer(connection.makefile('wb', self.wbufsize)) - except socket.error, err: + except (socket.error, IOError), err: raise NetLibError('Error connecting to "%s": %s' % (self.host, err)) self.connection = connection @@ -238,16 +238,16 @@ class TCPClient: #http://ia600609.us.archive.org/22/items/TheUltimateSo_lingerPageOrWhyIsMyTcpNotReliable/the-ultimate-so_linger-page-or-why-is-my-tcp-not-reliable.html while self.connection.recv(4096): pass - except (socket.error, SSL.Error): + self.connection.close() + except (socket.error, SSL.Error, IOError): # Socket probably already closed pass - self.connection.close() class BaseHandler: """ The instantiator is expected to call the handle() and finish() methods. - + """ rbufsize = -1 wbufsize = -1 -- cgit v1.2.3