diff options
author | Aldo Cortesi <aldo@nullcube.com> | 2012-02-23 16:27:08 +1300 |
---|---|---|
committer | Aldo Cortesi <aldo@nullcube.com> | 2012-02-23 16:27:08 +1300 |
commit | ee8058a2d927491dca165fd578bd8f1e80cb5713 (patch) | |
tree | 0080e49a490f4578d9d2ad24a7c8dd5dd5da60f5 /libmproxy | |
parent | 554047da85d9ff767077f3ba0126937980daedb9 (diff) | |
download | mitmproxy-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')
-rw-r--r-- | libmproxy/console/flowview.py | 20 |
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": |