Docs and comments for WSGI app example.

This commit is contained in:
Aldo Cortesi 2012-04-24 14:58:18 +12:00
parent c8d2b2594b
commit efa98d514c
2 changed files with 12 additions and 2 deletions

View File

@ -1,9 +1,13 @@
#!/usr/bin/env python
"""
This example shows how to graft a WSGI app onto mitmproxy. In this
instance, we're using the Bottle framework (http://bottlepy.org/) to expose
a single simplest-possible page.
"""
import bottle
import os
from libmproxy import proxy, flow
@bottle.route('/')
def index():
return 'Hi!'
@ -35,6 +39,8 @@ config = proxy.ProxyConfig(
)
state = flow.State()
server = proxy.ProxyServer(config, 8080)
# Register the app using the magic domain "proxapp" on port 80. Requests to
# this domain and port combination will now be routed to the WSGI app instance.
server.apps.add(bottle.app(), "proxapp", 80)
m = MyMaster(server, state)
m.run()

View File

@ -104,13 +104,17 @@ class WSGIAdaptor:
except Exception, v:
pass
return errs.getvalue()
class AppRegistry:
def __init__(self):
self.apps = {}
def add(self, app, domain, port):
"""
Add a WSGI app to the registry, to be served for requests to the
specified domain, on the specified port.
"""
self.apps[(domain, port)] = WSGIAdaptor(app, domain, port)
def get(self, request):