diff options
Diffstat (limited to 'demo/medusa054/START.py')
-rw-r--r-- | demo/medusa054/START.py | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/demo/medusa054/START.py b/demo/medusa054/START.py new file mode 100644 index 0000000..fb08ab3 --- /dev/null +++ b/demo/medusa054/START.py @@ -0,0 +1,71 @@ +#!/usr/bin/env python + +# Standard Python library +import os +import os.path +import sys + +# Medusa +import asyncore +import default_handler +import filesys +import ftp_server +import http_server +import status_handler + +# M2Crypto +import https_server +import poison_handler +import ftps_server +from M2Crypto import Rand, SSL, threading + +HTTP_PORT=39080 +HTTPS_PORT=39443 +FTP_PORT = 39021 + +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_locations('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:39443') +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/jdk130/docs') +dh=default_handler.default_handler(fs) +hs.install_handler(dh) +hss.install_handler(dh) + +#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) + +fauthz = ftp_server.anon_authorizer('/usr/local/pkg/apache/htdocs') +ftps = ftps_server.ftp_tls_server(fauthz, ssl_ctx, port=FTP_PORT) + +sh=status_handler.status_extension([hs, hss, ftps]) +hs.install_handler(sh) +hss.install_handler(sh) + +asyncore.loop() +Rand.save_file('../randpool.dat') + |