diff options
Diffstat (limited to 'ipaserver/__init__.py')
-rw-r--r-- | ipaserver/__init__.py | 30 |
1 files changed, 27 insertions, 3 deletions
diff --git a/ipaserver/__init__.py b/ipaserver/__init__.py index 35f96c7f..ec2a5364 100644 --- a/ipaserver/__init__.py +++ b/ipaserver/__init__.py @@ -24,27 +24,51 @@ Package containing server backend. from xmlrpclib import dumps, Fault from ipalib import api + +# This is a simple way to ensure that ipalib.api is only initialized +# when ipaserver is imported from within the Apache process: try: from mod_python import apache - api.bootstrap(context='server', log=None, debug=True) + api.bootstrap(context='server', debug=True, log=None) api.finalize() + api.log.info('*** PROCESS START ***') except ImportError: pass def xmlrpc(req): + """ + mod_python handler for XML-RPC requests. + """ if req.method != 'POST': req.allow_methods(['POST'], 1) return apache.HTTP_METHOD_NOT_ALLOWED if apache.mpm_query(apache.AP_MPMQ_IS_THREADED): response = dumps( - Fault(3, 'Apache must use the forked model'), methodresponse=True + Fault(3, 'Apache must use the forked model'), + methodresponse=True, ) else: - response = api.Backend.xmlserver.marshaled_dispatch(req.read(), None) + req.add_common_vars() + response = api.Backend.xmlserver.marshaled_dispatch( + req.read(), + req.subprocess_env.get('KRB5CCNAME'), + ) req.content_type = 'text/xml' req.set_content_length(len(response)) req.write(response) return apache.OK + + +def jsonrpc(req): + """ + mod_python handler for JSON-RPC requests (place holder). + """ + + +def webui(req): + """ + mod_python handler for web-UI requests (place holder). + """ |