diff --git a/backend/GnuviechAdmin/Settings.py b/backend/GnuviechAdmin/Settings.py index 3c16038..a7d8fe9 100644 --- a/backend/GnuviechAdmin/Settings.py +++ b/backend/GnuviechAdmin/Settings.py @@ -13,6 +13,8 @@ DBSETTINGS = { 'dbhost' : 'localhost', # courier:jevhi3Wriav # gnuviech:SIKKnsyXsV5yU +RPCSERVERADDRESS = ('localhost', 8080) + MAIL_SENDER = 'root@gnuviech.info' MAIL_RECEIVER = 'root@gnuviech.info' POPGROUP = 'poponly' diff --git a/backend/xmlrpcserver.py b/backend/xmlrpcserver.py index edb8b46..e6f7b7c 100755 --- a/backend/xmlrpcserver.py +++ b/backend/xmlrpcserver.py @@ -1,29 +1,30 @@ #!/usr/bin/python -# -# XML-RPC server for gnuviech-admin tool -# (c) 2006 Jan Dittberner -# $Id$ -# +""" +XML-RPC server for gnuviech-admin tool +(c) 2006 Jan Dittberner +$Id$ +""" from DocXMLRPCServer import DocXMLRPCServer -from GnuviechAdmin import ServiceFacade -import logging +from GnuviechAdmin import ServiceFacade, Settings +import logging, threading -def startRPCServer(): - address = ('localhost', 8080) - server = DocXMLRPCServer(address) - server.register_introspection_functions() - server.register_instance(ServiceFacade()) +logger = logging.getLogger() +hdlr = logging.FileHandler('xmlrpcserver.log') +f = logging.Formatter('%(asctime)s %(levelname)s %(module)s: %(message)s') +hdlr.setFormatter(f) +logger.addHandler(hdlr) +logger.setLevel(logging.DEBUG) - try: - server.serve_forever() - except KeyboardInterrupt: - server.server_close() +server = DocXMLRPCServer(Settings.RPCSERVERADDRESS) +server.register_introspection_functions() +server.register_instance(ServiceFacade()) -if __name__ == "__main__": - logger = logging.getLogger() - hdlr = logging.FileHandler('xmlrpcserver.log') - f = logging.Formatter('%(asctime)s %(levelname)s %(module)s: %(message)s') - hdlr.setFormatter(f) - logger.addHandler(hdlr) - logger.setLevel(logging.DEBUG) - startRPCServer() +try: + server.serve_forever() +except KeyboardInterrupt: + server.server_close() + + for thread in [t for t in threading.enumerate() if t.isAlive() \ + and isinstance(t, threading._Timer)]: + logger.debug("Stopping timer thread %s" % thread.getName()) + thread.cancel()