diff options
Diffstat (limited to 'demo/medusa054/START_xmlrpc.py')
-rw-r--r-- | demo/medusa054/START_xmlrpc.py | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/demo/medusa054/START_xmlrpc.py b/demo/medusa054/START_xmlrpc.py new file mode 100644 index 0000000..65b6d67 --- /dev/null +++ b/demo/medusa054/START_xmlrpc.py @@ -0,0 +1,72 @@ +#!/usr/bin/env python + +# Standard Python library +import os +import os.path +import sys + +# Medusa +import asyncore +import default_handler +import filesys +import http_server +import status_handler + +# M2Crypto +import https_server +import poison_handler +from M2Crypto import Rand, SSL + +# XMLrpc +import xmlrpc_handler + + +HTTP_PORT=39080 +HTTPS_PORT=39443 + +hs=http_server.http_server('', HTTP_PORT) + +Rand.load_file('../randpool.dat', -1) +ssl_ctx=SSL.Context('sslv23') +ssl_ctx.load_cert('server.pem') +#ssl_ctx.load_verify_location('ca.pem') +#ssl_ctx.load_client_CA('ca.pem') +#ssl_ctx.set_verify(SSL.verify_peer, 10) +#ssl_ctx.set_verify(SSL.verify_peer|SSL.verify_fail_if_no_peer_cert, 10) +#ssl_ctx.set_verify(SSL.verify_peer|SSL.verify_client_once, 10) +ssl_ctx.set_verify(SSL.verify_none, 10) +ssl_ctx.set_session_id_ctx('127.0.0.1:9443') +ssl_ctx.set_tmp_dh('dh1024.pem') +#ssl_ctx.set_info_callback() + +hss=https_server.https_server('', HTTPS_PORT, ssl_ctx) + +fs=filesys.os_filesystem(os.path.abspath(os.curdir)) +#fs=filesys.os_filesystem('/usr/local/pkg/apache/htdocs') +#fs=filesys.os_filesystem('c:/pkg/jdk118/docs') +dh=default_handler.default_handler(fs) +hs.install_handler(dh) +hss.install_handler(dh) + +# Cribbed from xmlrpc_handler.py. +# This is where you implement your RPC functionality. +class rpc_demo (xmlrpc_handler.xmlrpc_handler): + def call (self, method, params): + print 'method="%s" params=%s' % (method, params) + return "Sure, that works" + +rpch = rpc_demo() +hs.install_handler(rpch) +hss.install_handler(rpch) + +ph=poison_handler.poison_handler(10) +hs.install_handler(ph) +hss.install_handler(ph) + +sh=status_handler.status_extension([hss]) +hs.install_handler(sh) +hss.install_handler(sh) + +asyncore.loop() +Rand.save_file('../randpool.dat') + |