From d7d204b65b7f570f806a1fdbbbb48dd73a5377af Mon Sep 17 00:00:00 2001 From: Christophe Chauvet Date: Tue, 12 Aug 2008 18:32:16 +0200 Subject: [PATCH] Exit properly when port is already used bzr revid: christophe.chauvet@syleam.fr-20080812163216-h9mcf053tl1101wx --- bin/netsvc.py | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/bin/netsvc.py b/bin/netsvc.py index e05d4ece6b9..10345c05b5f 100644 --- a/bin/netsvc.py +++ b/bin/netsvc.py @@ -266,9 +266,13 @@ class SimpleThreadedXMLRPCServer(SocketServer.ThreadingMixIn, SimpleXMLRPCServer.SimpleXMLRPCServer): def server_bind(self): - self.socket.setsockopt(socket.SOL_SOCKET, - socket.SO_REUSEADDR, 1) - SimpleXMLRPCServer.SimpleXMLRPCServer.server_bind(self) + try: + self.socket.setsockopt(socket.SOL_SOCKET, + socket.SO_REUSEADDR, 1) + SimpleXMLRPCServer.SimpleXMLRPCServer.server_bind(self) + except: + sys.stderr.write("ERROR: address already in use\n") + sys.exit(1) class HttpDaemon(threading.Thread): @@ -287,9 +291,14 @@ class HttpDaemon(threading.Thread): SecureXMLRPCServer.SecureXMLRPCServer): def server_bind(self): - self.socket.setsockopt(socket.SOL_SOCKET, - socket.SO_REUSEADDR, 1) - SecureXMLRPCServer.SecureXMLRPCServer.server_bind(self) + try: + self.socket.setsockopt(socket.SOL_SOCKET, + socket.SO_REUSEADDR, 1) + SecureXMLRPCServer.SecureXMLRPCServer.server_bind(self) + except: + sys.stderr.write("ERROR: address already in use\n") + sys.exit(1) + self.server = SecureThreadedXMLRPCServer((interface, port), SecureXMLRPCRequestHandler, 0)