diff --git a/bin/netsvc.py b/bin/netsvc.py index 888117ba639..cf24ac6a571 100644 --- a/bin/netsvc.py +++ b/bin/netsvc.py @@ -324,7 +324,21 @@ class HttpDaemon(threading.Thread): self.secure = bool(secure) handler_class = (SimpleXMLRPCRequestHandler, SecureXMLRPCRequestHandler)[self.secure] server_class = (SimpleThreadedXMLRPCServer, SecureThreadedXMLRPCServer)[self.secure] - self.server = server_class((interface, port), handler_class, 0) + + if self.secure: + from OpenSSL.SSL import Error as SSLError + else: + class SSLError(Exception): pass + + try: + self.server = server_class((interface, port), handler_class, 0) + except SSLError, e: + Logger().notifyChannel('xml-rpc-ssl', LOG_CRITICAL, "Can't load the certificate and/or the private key files") + sys.exit(1) + except Exception, e: + Logger().notifyChannel('xml-rpc', LOG_CRITICAL, "Error occur when strarting the server daemon: %s" % (e,)) + sys.exit(1) + def attach(self, path, gw): pass diff --git a/bin/openerp-server.py b/bin/openerp-server.py index e0621a87d86..943f13be25b 100755 --- a/bin/openerp-server.py +++ b/bin/openerp-server.py @@ -154,23 +154,16 @@ if tools.config['xmlrpc']: try: port = int(tools.config["port"]) except Exception: - logger.notifyChannel("init", netsvc.LOG_ERROR, "invalid port '%s'!" % (tools.config["port"],)) + logger.notifyChannel("init", netsvc.LOG_CRITICAL, "invalid port: %r" % (tools.config["port"],)) sys.exit(1) interface = tools.config["interface"] secure = tools.config["secure"] - import OpenSSL + httpd = netsvc.HttpDaemon(interface, port, secure) - try: - httpd = netsvc.HttpDaemon(interface, port, secure) - except OpenSSL.SSL.Error, error: - logger.notifyChannel('xml-rpc-ssl', netsvc.LOG_CRITICAL, "Can't load the certificate and/or the private key files" ) - sys.exit(1) - - if tools.config["xmlrpc"]: - xml_gw = netsvc.xmlrpc.RpcGateway('web-services') - httpd.attach("/xmlrpc", xml_gw) - logger.notifyChannel("web-services", netsvc.LOG_INFO, "starting XML-RPC%s services, port %s" % ((tools.config['secure'] and ' Secure' or ''), port)) + xml_gw = netsvc.xmlrpc.RpcGateway('web-services') + httpd.attach("/xmlrpc", xml_gw) + logger.notifyChannel("web-services", netsvc.LOG_INFO, "starting XML-RPC%s services, port %s" % ((tools.config['secure'] and ' Secure' or ''), port)) # #if tools.config["soap"]: