From 4268a9b51491524aeddade2810018668b2839be9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9gory=20Wisniewski?= <gregory@nexedi.com> Date: Tue, 7 Jul 2009 14:49:56 +0000 Subject: [PATCH] Catch socket exception around fileno() to not crash if the socket is already closed (invalid descriptor found). git-svn-id: https://svn.erp5.org/repos/neo/branches/prototype3@818 71dcc9de-d417-0410-9af5-da40c76e7ee4 --- neo/connector.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/neo/connector.py b/neo/connector.py index 6d744751..6b32cc60 100644 --- a/neo/connector.py +++ b/neo/connector.py @@ -132,8 +132,12 @@ class SocketConnector: return self.socket.close() def __repr__(self): - result = '<%s at 0x%x fileno %i %s ' % (self.__class__.__name__, id(self), - self.socket.fileno(), self.socket.getsockname()) + try: + fileno = str(self.socket.fileno()) + except socket.error, (err, errmsg): + fileno = '?' + result = '<%s at 0x%x fileno %s %s>' % (self.__class__.__name__, id(self), + fileno, self.socket.getsockname()) if self.is_closed is None: result += 'never opened' else: -- 2.30.9