From eae8112f1467b92b0b17f6aa68361eb6492a563c Mon Sep 17 00:00:00 2001 From: Petteri Date: Fri, 12 Nov 2010 18:26:41 +0200 Subject: [PATCH] 7. On OS X Python 2.6, service.shutdown() fails and blocks telepaatti Added error handling to socket.shutdown calls and eventially also close the socket. --- telepaatti.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/telepaatti.py b/telepaatti.py index 9940e8b..327f08f 100755 --- a/telepaatti.py +++ b/telepaatti.py @@ -941,7 +941,11 @@ class ClientThread(Thread): if not jt.connected: self.ircCommandNOTICE('XMPP server disconnected, shutting down Telepaatti.') jt.connected = False - self.socket.shutdown(socket.SHUT_RDWR) + try: + self.socket.shutdown(socket.SHUT_RDWR) + except socket.error: + self.printError('Socket shutdown client') + self.socket.close() def messageHandlerError(self, sess, mess): """Handle incoming error messages from XMPP @@ -1738,7 +1742,11 @@ def main(): (clientsocket, address ) = service.accept() ct = ClientThread(clientsocket, port, user, password, debug, nickname) ct.start() - service.shutdown(socket.SHUT_RDWR) + try: + service.shutdown(socket.SHUT_RDWR) + except socket.error: + self.printError('Socket shutdown main') + service.close() if __name__ == "__main__": main()