aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy/console/flowview.py
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2012-02-23 16:27:08 +1300
committerAldo Cortesi <aldo@nullcube.com>2012-02-23 16:27:08 +1300
commitee8058a2d927491dca165fd578bd8f1e80cb5713 (patch)
tree0080e49a490f4578d9d2ad24a7c8dd5dd5da60f5 /libmproxy/console/flowview.py
parent554047da85d9ff767077f3ba0126937980daedb9 (diff)
downloadmitmproxy-ee8058a2d927491dca165fd578bd8f1e80cb5713.tar.gz
mitmproxy-ee8058a2d927491dca165fd578bd8f1e80cb5713.tar.bz2
mitmproxy-ee8058a2d927491dca165fd578bd8f1e80cb5713.zip
Confirm when we clear a request body to add a form.
Diffstat (limited to 'libmproxy/console/flowview.py')
-rw-r--r--libmproxy/console/flowview.py20
1 files changed, 19 insertions, 1 deletions
diff --git a/libmproxy/console/flowview.py b/libmproxy/console/flowview.py
index 2ac92ee0..c4a12308 100644
--- a/libmproxy/console/flowview.py
+++ b/libmproxy/console/flowview.py
@@ -394,6 +394,13 @@ class ConnectionView(common.WWrap):
def set_form(self, lst, conn):
conn.set_form_urlencoded(flow.ODict(lst))
+ def edit_form(self, conn):
+ self.master.view_kveditor("Editing form", conn.get_form_urlencoded().lst, self.set_form, conn)
+
+ def edit_form_confirm(self, key, conn):
+ if key == "y":
+ self.edit_form(conn)
+
def edit(self, part):
if self.state.view_flow_mode == common.VIEW_FLOW_REQUEST:
conn = self.flow.request
@@ -407,7 +414,18 @@ class ConnectionView(common.WWrap):
c = self.master.spawn_editor(conn.content or "")
conn.content = c.rstrip("\n")
elif part == "f":
- self.master.view_kveditor("Editing form", conn.get_form_urlencoded().lst, self.set_form, conn)
+ if not conn.get_form_urlencoded() and conn.content:
+ self.master.prompt_onekey(
+ "Existing body is not a URL-encoded form. Clear and edit?",
+ [
+ ("yes", "y"),
+ ("no", "n"),
+ ],
+ self.edit_form_confirm,
+ conn
+ )
+ else:
+ self.edit_form(conn)
elif part == "h":
self.master.view_kveditor("Editing headers", conn.headers.lst, self.set_headers, conn)
elif part == "q":