aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy/console/flowview.py
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2012-04-04 09:47:57 +1200
committerAldo Cortesi <aldo@nullcube.com>2012-04-04 09:47:57 +1200
commit79a0334a0245de915bfffc999906d45e0e42d37e (patch)
tree72ddc1948d2802b4b82c193e156d2a861ebecc20 /libmproxy/console/flowview.py
parentab0e10e60f9d481ac0aa782c69bd02de9b7fbf0d (diff)
downloadmitmproxy-79a0334a0245de915bfffc999906d45e0e42d37e.tar.gz
mitmproxy-79a0334a0245de915bfffc999906d45e0e42d37e.tar.bz2
mitmproxy-79a0334a0245de915bfffc999906d45e0e42d37e.zip
Improve revert model
- Flows are backed up whenever an interactive, non-script change is made. - That backup is canonical and never changed - "V" will always revert to it. This makes more sense than what we had previously....
Diffstat (limited to 'libmproxy/console/flowview.py')
-rw-r--r--libmproxy/console/flowview.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/libmproxy/console/flowview.py b/libmproxy/console/flowview.py
index 1ec410ed..024a7ee1 100644
--- a/libmproxy/console/flowview.py
+++ b/libmproxy/console/flowview.py
@@ -460,13 +460,18 @@ class FlowView(common.WWrap):
elif key == "p":
self.view_prev_flow(self.flow)
elif key == "r":
+ self.flow.backup()
r = self.master.replay_request(self.flow)
if r:
self.master.statusbar.message(r)
self.master.refresh_flow(self.flow)
elif key == "V":
+ if not self.flow.modified():
+ self.master.statusbar.message("Flow not modified.")
+ return
self.state.revert(self.flow)
self.master.refresh_flow(self.flow)
+ self.master.statusbar.message("Reverted.")
elif key == "W":
self.master.path_prompt(
"Save this flow: ",
@@ -502,6 +507,7 @@ class FlowView(common.WWrap):
self.master.view_flowdetails(self.flow)
elif key == "z":
if conn:
+ self.flow.backup()
e = conn.headers["content-encoding"] or ["identity"]
if e[0] != "identity":
conn.decode()