/usr/lib/python2.6/site-packages/supervisor/medusa
NameSizeModeActions
auth_handler.py47390644editdlrm
auth_handler.pyc45130644editdlrm
auth_handler.pyo45130644editdlrm
chat_server.py45350644editdlrm
chat_server.pyc64270644editdlrm
chat_server.pyo64270644editdlrm
counter.py14400644editdlrm
counter.pyc20390644editdlrm
counter.pyo20390644editdlrm
default_handler.py63310644editdlrm
default_handler.pyc50340644editdlrm
default_handler.pyo50340644editdlrm
event_loop.py29810644editdlrm
event_loop.pyc35130644editdlrm
event_loop.pyo35130644editdlrm
filesys.py112060644editdlrm
filesys.pyc135980644editdlrm
filesys.pyo135980644editdlrm
ftp_server.py405520644editdlrm
ftp_server.pyc347270644editdlrm
ftp_server.pyo347270644editdlrm
http_date.py34150644editdlrm
http_date.pyc34680644editdlrm
http_date.pyo34680644editdlrm
http_server.py252170644editdlrm
http_server.pyc214680644editdlrm
http_server.pyo214680644editdlrm
logger.py80000644editdlrm
logger.pyc109900644editdlrm
logger.pyo109900644editdlrm
medusa_gif.py27720644editdlrm
medusa_gif.pyc11560644editdlrm
medusa_gif.pyo11560644editdlrm
monitor.py110540644editdlrm
monitor.pyc122850644editdlrm
monitor.pyo122850644editdlrm
monitor_client.py32730644editdlrm
monitor_client.pyc53900644editdlrm
monitor_client.pyo53900644editdlrm
monitor_client_win32.py13340644editdlrm
monitor_client_win32.pyc20940644editdlrm
monitor_client_win32.pyo20940644editdlrm
m_syslog.py73510644editdlrm
m_syslog.pyc40060644editdlrm
m_syslog.pyo40060644editdlrm
producers.py94390644editdlrm
producers.pyc116340644editdlrm
producers.pyo116340644editdlrm
put_handler.py33240644editdlrm
put_handler.pyc35110644editdlrm
put_handler.pyo35110644editdlrm
redirecting_handler.py14030644editdlrm
redirecting_handler.pyc21590644editdlrm
redirecting_handler.pyo21590644editdlrm
resolver.py155590644editdlrm
resolver.pyc124010644editdlrm
resolver.pyo124010644editdlrm
rpc_client.py96750644editdlrm
rpc_client.pyc103460644editdlrm
rpc_client.pyo103460644editdlrm
rpc_server.py99530644editdlrm
rpc_server.pyc95360644editdlrm
rpc_server.pyo95360644editdlrm
script_handler.py65540644editdlrm
script_handler.pyc66510644editdlrm
script_handler.pyo66510644editdlrm
setup.py4960644editdlrm
setup.pyc7290644editdlrm
setup.pyo7290644editdlrm
status_handler.py93520644editdlrm
status_handler.pyc96720644editdlrm
status_handler.pyo96720644editdlrm
unix_user_handler.py23120644editdlrm
unix_user_handler.pyc23610644editdlrm
unix_user_handler.pyo23610644editdlrm
virtual_handler.py17240644editdlrm
virtual_handler.pyc31640644editdlrm
virtual_handler.pyo31640644editdlrm
xmlrpc_handler.py29440644editdlrm
xmlrpc_handler.pyc37840644editdlrm
xmlrpc_handler.pyo37840644editdlrm
__init__.py1280644editdlrm
__init__.pyc2770644editdlrm
__init__.pyo2770644editdlrm
Edit: /usr/lib/python2.6/site-packages/supervisor/medusa/xmlrpc_handler.py (2944B)
# -*- Mode: Python -*- # See http://www.xml-rpc.com/ # http://www.pythonware.com/products/xmlrpc/ # Based on "xmlrpcserver.py" by Fredrik Lundh (fredrik@pythonware.com) VERSION = "$Id: xmlrpc_handler.py,v 1.1.1.1 2006/06/26 06:36:05 chrism Exp $" import http_server import xmlrpclib import string import sys class xmlrpc_handler: def match (self, request): # Note: /RPC2 is not required by the spec, so you may override this method. if request.uri[:5] == '/RPC2': return 1 else: return 0 def handle_request (self, request): [path, params, query, fragment] = request.split_uri() if request.command == 'POST': request.collector = collector (self, request) else: request.error (400) def continue_request (self, data, request): params, method = xmlrpclib.loads (data) try: # generate response try: response = self.call (method, params) if type(response) != type(()): response = (response,) except: # report exception back to server response = xmlrpclib.dumps ( xmlrpclib.Fault (1, "%s:%s" % (sys.exc_type, sys.exc_value)) ) else: response = xmlrpclib.dumps (response, methodresponse=1) except: # internal error, report as HTTP server error request.error (500) else: # got a valid XML RPC response request['Content-Type'] = 'text/xml' request.push (response) request.done() def call (self, method, params): # override this method to implement RPC methods raise "NotYetImplemented" class collector: "gathers input for POST and PUT requests" def __init__ (self, handler, request): self.handler = handler self.request = request self.data = '' # make sure there's a content-length header cl = request.get_header ('content-length') if not cl: request.error (411) else: cl = string.atoi (cl) # using a 'numeric' terminator self.request.channel.set_terminator (cl) def collect_incoming_data (self, data): self.data = self.data + data def found_terminator (self): # set the terminator back to the default self.request.channel.set_terminator ('\r\n\r\n') self.handler.continue_request (self.data, self.request) if __name__ == '__main__': class rpc_demo (xmlrpc_handler): def call (self, method, params): print 'method="%s" params=%s' % (method, params) return "Sure, that works" import asyncore hs = http_server.http_server ('', 8000) rpc = rpc_demo() hs.install_handler (rpc) asyncore.loop()