aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libmproxy/cmdline.py4
-rw-r--r--libmproxy/console/__init__.py10
-rw-r--r--libmproxy/dump.py10
-rw-r--r--test/test_dump.py6
4 files changed, 17 insertions, 13 deletions
diff --git a/libmproxy/cmdline.py b/libmproxy/cmdline.py
index 185944da..e45cc54c 100644
--- a/libmproxy/cmdline.py
+++ b/libmproxy/cmdline.py
@@ -418,14 +418,14 @@ def common_options(parser):
group = parser.add_argument_group("Client Replay")
group.add_argument(
"-c", "--client-replay",
- action="store", dest="client_replay", default=None, metavar="PATH",
+ action="append", dest="client_replay", default=None, metavar="PATH",
help="Replay client requests from a saved file."
)
group = parser.add_argument_group("Server Replay")
group.add_argument(
"-S", "--server-replay",
- action="store", dest="server_replay", default=None, metavar="PATH",
+ action="append", dest="server_replay", default=None, metavar="PATH",
help="Replay server responses from a saved file."
)
group.add_argument(
diff --git a/libmproxy/console/__init__.py b/libmproxy/console/__init__.py
index dc20d21f..6aabf5ed 100644
--- a/libmproxy/console/__init__.py
+++ b/libmproxy/console/__init__.py
@@ -498,11 +498,13 @@ class ConsoleMaster(flow.FlowMaster):
self.eventlog = not self.eventlog
self.view_flowlist()
- def _readflow(self, path):
- path = os.path.expanduser(path)
+ def _readflow(self, paths):
try:
- f = file(path, "rb")
- flows = list(flow.FlowReader(f).stream())
+ flows = []
+ for path in paths:
+ path = os.path.expanduser(path)
+ with file(path, "rb") as f:
+ flows.extend(list(flow.FlowReader(f).stream()))
except (IOError, flow.FlowReadError), v:
return True, v.strerror
return False, flows
diff --git a/libmproxy/dump.py b/libmproxy/dump.py
index 91ccb42b..70f175f6 100644
--- a/libmproxy/dump.py
+++ b/libmproxy/dump.py
@@ -143,11 +143,13 @@ class DumpMaster(flow.FlowMaster):
if self.o.app:
self.start_app(self.o.app_host, self.o.app_port)
- def _readflow(self, path):
- path = os.path.expanduser(path)
+ def _readflow(self, paths):
try:
- f = file(path, "rb")
- flows = list(flow.FlowReader(f).stream())
+ flows = []
+ for path in paths:
+ path = os.path.expanduser(path)
+ with file(path, "rb") as f:
+ flows.extend(list(flow.FlowReader(f).stream()))
except (IOError, flow.FlowReadError), v:
raise DumpError(v.strerror)
return flows
diff --git a/test/test_dump.py b/test/test_dump.py
index 927b5b50..69df912f 100644
--- a/test/test_dump.py
+++ b/test/test_dump.py
@@ -82,17 +82,17 @@ class TestDumpMaster:
p = os.path.join(t, "rep")
self._flowfile(p)
- o = dump.Options(server_replay=p, kill=True)
+ o = dump.Options(server_replay=[p], kill=True)
m = dump.DumpMaster(None, o, outfile=cs)
self._cycle(m, "content")
self._cycle(m, "content")
- o = dump.Options(server_replay=p, kill=False)
+ o = dump.Options(server_replay=[p], kill=False)
m = dump.DumpMaster(None, o, outfile=cs)
self._cycle(m, "nonexistent")
- o = dump.Options(client_replay=p, kill=False)
+ o = dump.Options(client_replay=[p], kill=False)
m = dump.DumpMaster(None, o, outfile=cs)
def test_read(self):