diff options
author | Aldo Cortesi <aldo@nullcube.com> | 2012-04-04 09:47:57 +1200 |
---|---|---|
committer | Aldo Cortesi <aldo@nullcube.com> | 2012-04-04 09:47:57 +1200 |
commit | 79a0334a0245de915bfffc999906d45e0e42d37e (patch) | |
tree | 72ddc1948d2802b4b82c193e156d2a861ebecc20 /libmproxy/console/flowview.py | |
parent | ab0e10e60f9d481ac0aa782c69bd02de9b7fbf0d (diff) | |
download | mitmproxy-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.py | 6 |
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() |