xmlrpc.py (1093B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\carbon\common\lib\cherrypy\lib\xmlrpc.py 2 import sys 3 import cherrypy 4 5 def process_body(): 6 try: 7 import xmlrpclib 8 return xmlrpclib.loads(cherrypy.request.body.read()) 9 except Exception: 10 return (('ERROR PARAMS',), 'ERRORMETHOD') 11 12 13 def patched_path(path): 14 if not path.endswith('/'): 15 path += '/' 16 if path.startswith('/RPC2/'): 17 path = path[5:] 18 return path 19 20 21 def _set_response(body): 22 response = cherrypy.response 23 response.status = '200 OK' 24 response.body = body 25 response.headers['Content-Type'] = 'text/xml' 26 response.headers['Content-Length'] = len(body) 27 28 29 def respond(body, encoding = 'utf-8', allow_none = 0): 30 from xmlrpclib import Fault, dumps 31 if not isinstance(body, Fault): 32 body = (body,) 33 _set_response(dumps(body, methodresponse=1, encoding=encoding, allow_none=allow_none)) 34 35 36 def on_error(*args, **kwargs): 37 body = str(sys.exc_info()[1]) 38 from xmlrpclib import Fault, dumps 39 _set_response(dumps(Fault(1, body)))