aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xexamples/proxapp8
-rw-r--r--libmproxy/wsgi.py6
2 files changed, 12 insertions, 2 deletions
diff --git a/examples/proxapp b/examples/proxapp
index cb1fd881..e8179528 100755
--- a/examples/proxapp
+++ b/examples/proxapp
@@ -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()
diff --git a/libmproxy/wsgi.py b/libmproxy/wsgi.py
index 8844ea3e..9fb5f0c5 100644
--- a/libmproxy/wsgi.py
+++ b/libmproxy/wsgi.py
@@ -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):