aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy/console
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2012-02-18 16:27:09 +1300
committerAldo Cortesi <aldo@nullcube.com>2012-02-18 16:27:09 +1300
commit6ad8b1a15d725f34990cfe3ae650fa239171a044 (patch)
tree8dc1e8ea9c06d971ac2ff1b54bf766c5266176ad /libmproxy/console
parenta7df6e1503551bf15c35252ffe39236221bae739 (diff)
downloadmitmproxy-6ad8b1a15d725f34990cfe3ae650fa239171a044.tar.gz
mitmproxy-6ad8b1a15d725f34990cfe3ae650fa239171a044.tar.bz2
mitmproxy-6ad8b1a15d725f34990cfe3ae650fa239171a044.zip
Firm up reverse proxy specification.
- Extract proxy spec parsing and unparsing functions. - Add a status indicator in mitmproxy. - Add the "R" keybinding for changing the reverse proxy from within mitmproxy.
Diffstat (limited to 'libmproxy/console')
-rw-r--r--libmproxy/console/__init__.py33
1 files changed, 27 insertions, 6 deletions
diff --git a/libmproxy/console/__init__.py b/libmproxy/console/__init__.py
index d12b16b3..da110cdb 100644
--- a/libmproxy/console/__init__.py
+++ b/libmproxy/console/__init__.py
@@ -122,28 +122,32 @@ class StatusBar(common.WWrap):
if self.master.client_playback:
r.append("[")
- r.append(("statusbar_highlight", "cplayback"))
+ r.append(("key", "cplayback"))
r.append(":%s to go]"%self.master.client_playback.count())
if self.master.server_playback:
r.append("[")
- r.append(("statusbar_highlight", "splayback"))
+ r.append(("key", "splayback"))
r.append(":%s to go]"%self.master.server_playback.count())
if self.master.state.intercept_txt:
r.append("[")
- r.append(("statusbar_highlight", "i"))
+ r.append(("key", "i"))
r.append(":%s]"%self.master.state.intercept_txt)
if self.master.state.limit_txt:
r.append("[")
- r.append(("statusbar_highlight", "l"))
+ r.append(("key", "l"))
r.append(":%s]"%self.master.state.limit_txt)
if self.master.stickycookie_txt:
r.append("[")
- r.append(("statusbar_highlight", "t"))
+ r.append(("key", "t"))
r.append(":%s]"%self.master.stickycookie_txt)
if self.master.stickyauth_txt:
r.append("[")
- r.append(("statusbar_highlight", "u"))
+ r.append(("key", "u"))
r.append(":%s]"%self.master.stickyauth_txt)
+ if self.master.server.config.reverse_proxy:
+ r.append("[")
+ r.append(("key", "R"))
+ r.append(":%s]"%utils.unparse_url(*self.master.server.config.reverse_proxy))
opts = []
if self.master.anticache:
@@ -667,6 +671,12 @@ class ConsoleMaster(flow.FlowMaster):
def set_intercept(self, txt):
return self.state.set_intercept(txt)
+ def set_reverse_proxy(self, txt):
+ s = utils.parse_proxy_spec(txt)
+ if not s:
+ return "Invalid reverse proxy specification"
+ self.server.config.reverse_proxy = s
+
def changeview(self, v):
if v == "r":
self.state.view_body_mode = common.VIEW_BODY_RAW
@@ -754,6 +764,17 @@ class ConsoleMaster(flow.FlowMaster):
),
self.quit,
)
+ elif k == "R":
+ if self.server.config.reverse_proxy:
+ p = utils.unparse_url(*self.server.config.reverse_proxy)
+ else:
+ p = ""
+ self.prompt(
+ "Reverse proxy: ",
+ p,
+ self.set_reverse_proxy
+ )
+ self.sync_list_view()
elif k == "s":
if self.script:
self.load_script(None)