From e285b17e3ff2e48455a5bc45b9a401b5b78b65cf Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Sun, 15 May 2011 11:54:12 +1200 Subject: Add -r option to mitmdump and mitmproxy. This option reads a set of flows from a file. I've also regularized the mitmdump and mitmproxy command-line signatures by removing mitmproxy's old way of specifying flow loads through naked arguments. --- libmproxy/dump.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'libmproxy/dump.py') diff --git a/libmproxy/dump.py b/libmproxy/dump.py index 3e645167..ce9c2b50 100644 --- a/libmproxy/dump.py +++ b/libmproxy/dump.py @@ -14,6 +14,7 @@ class Options(object): "refresh_server_playback", "request_script", "response_script", + "rfile", "rheaders", "server_replay", "stickycookie", @@ -84,6 +85,15 @@ class DumpMaster(flow.FlowMaster): not options.keepserving ) + if options.rfile: + path = os.path.expanduser(options.rfile) + try: + f = file(path, "r") + freader = flow.FlowReader(f) + except IOError, v: + raise DumpError(v.strerror) + self.load_flows(freader) + if options.client_replay: self.start_client_playback( self._readflow(options.client_replay), @@ -189,6 +199,8 @@ class DumpMaster(flow.FlowMaster): # begin nocover def run(self): + if self.o.rfile and not self.o.keepserving: + return try: return flow.FlowMaster.run(self) except BaseException, v: -- cgit v1.2.3 From 07110bbbf192339b52d1067b531d0cea20b245d2 Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Sun, 15 May 2011 12:23:34 +1200 Subject: Anticache and refresh_server_playback options are applied before flows are loaded. You can now use mitmdump to preview how these options work, by running mitmdump against a set of saved flows, and viewing the output. --- libmproxy/dump.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'libmproxy/dump.py') diff --git a/libmproxy/dump.py b/libmproxy/dump.py index ce9c2b50..b4621716 100644 --- a/libmproxy/dump.py +++ b/libmproxy/dump.py @@ -53,6 +53,8 @@ class DumpMaster(flow.FlowMaster): flow.FlowMaster.__init__(self, server, flow.State()) self.outfile = outfile self.o = options + self.anticache = options.anticache + self.refresh_server_playback = options.refresh_server_playback if filtstr: self.filt = filt.parse(filtstr) @@ -100,8 +102,6 @@ class DumpMaster(flow.FlowMaster): not options.keepserving ) - self.anticache = options.anticache - self.refresh_server_playback = options.refresh_server_playback def _readflow(self, path): path = os.path.expanduser(path) -- cgit v1.2.3