From c8d2b2594bd38d988c387073ac5cfe62cf05122e Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Tue, 24 Apr 2012 09:43:14 +1200 Subject: Add a WSGI adapter that lets us serve a WSGI app out of mitmproxy. This commit adds: - A WSGI App adapter for mitmproxy - An app registry in the proxy instance that lets us link WSGI apps with (hostname, port) combinations. - Fixes for a number of bugs discovered while creating this feature. --- examples/proxapp | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100755 examples/proxapp (limited to 'examples') diff --git a/examples/proxapp b/examples/proxapp new file mode 100755 index 00000000..cb1fd881 --- /dev/null +++ b/examples/proxapp @@ -0,0 +1,41 @@ +#!/usr/bin/env python +import bottle +import os +from libmproxy import proxy, flow + + +@bottle.route('/') +def index(): + return 'Hi!' + + +class MyMaster(flow.FlowMaster): + def run(self): + try: + flow.FlowMaster.run(self) + except KeyboardInterrupt: + self.shutdown() + + def handle_request(self, r): + f = flow.FlowMaster.handle_request(self, r) + if f: + r._ack() + return f + + def handle_response(self, r): + f = flow.FlowMaster.handle_response(self, r) + if f: + r._ack() + print f + return f + + +config = proxy.ProxyConfig( + cacert = os.path.expanduser("~/.mitmproxy/mitmproxy-ca.pem") +) +state = flow.State() +server = proxy.ProxyServer(config, 8080) +server.apps.add(bottle.app(), "proxapp", 80) +m = MyMaster(server, state) +m.run() + -- cgit v1.2.3