mirror of
https://github.com/Grasscutters/mitmproxy.git
synced 2024-12-03 12:23:46 +00:00
Merge pull request #425 from tekii/master
append option added to dump (flow file is open in append mode instead of overwrite)
This commit is contained in:
commit
93d4a0132a
@ -179,7 +179,7 @@ def get_common_options(options):
|
|||||||
stickyauth=stickyauth,
|
stickyauth=stickyauth,
|
||||||
stream_large_bodies=stream_large_bodies,
|
stream_large_bodies=stream_large_bodies,
|
||||||
showhost=options.showhost,
|
showhost=options.showhost,
|
||||||
wfile=options.wfile,
|
outfile=options.outfile,
|
||||||
verbosity=options.verbose,
|
verbosity=options.verbose,
|
||||||
nopop=options.nopop,
|
nopop=options.nopop,
|
||||||
replay_ignore_content = options.replay_ignore_content,
|
replay_ignore_content = options.replay_ignore_content,
|
||||||
@ -249,11 +249,17 @@ def common_options(parser):
|
|||||||
action="store_const", dest="verbose", default=1, const=2,
|
action="store_const", dest="verbose", default=1, const=2,
|
||||||
help="Increase event log verbosity."
|
help="Increase event log verbosity."
|
||||||
)
|
)
|
||||||
parser.add_argument(
|
outfile = parser.add_mutually_exclusive_group()
|
||||||
|
outfile.add_argument(
|
||||||
"-w", "--wfile",
|
"-w", "--wfile",
|
||||||
action="store", dest="wfile", default=None,
|
action="store", dest="outfile", type=lambda f: (f, "wb"),
|
||||||
help="Write flows to file."
|
help="Write flows to file."
|
||||||
)
|
)
|
||||||
|
outfile.add_argument(
|
||||||
|
"-a", "--afile",
|
||||||
|
action="store", dest="outfile", type=lambda f: (f, "ab"),
|
||||||
|
help="Append flows to file."
|
||||||
|
)
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"-z", "--anticomp",
|
"-z", "--anticomp",
|
||||||
action="store_true", dest="anticomp", default=False,
|
action="store_true", dest="anticomp", default=False,
|
||||||
@ -371,7 +377,7 @@ def common_options(parser):
|
|||||||
|
|
||||||
group = parser.add_argument_group("Onboarding App")
|
group = parser.add_argument_group("Onboarding App")
|
||||||
group.add_argument(
|
group.add_argument(
|
||||||
"-a", "--noapp",
|
"--noapp",
|
||||||
action="store_false", dest="app", default=True,
|
action="store_false", dest="app", default=True,
|
||||||
help="Disable the mitmproxy onboarding app."
|
help="Disable the mitmproxy onboarding app."
|
||||||
)
|
)
|
||||||
|
@ -36,7 +36,7 @@ class Options(object):
|
|||||||
"stickyauth",
|
"stickyauth",
|
||||||
"stream_large_bodies",
|
"stream_large_bodies",
|
||||||
"verbosity",
|
"verbosity",
|
||||||
"wfile",
|
"outfile",
|
||||||
"replay_ignore_content",
|
"replay_ignore_content",
|
||||||
"replay_ignore_params",
|
"replay_ignore_params",
|
||||||
]
|
]
|
||||||
@ -92,10 +92,10 @@ class DumpMaster(flow.FlowMaster):
|
|||||||
if options.stickyauth:
|
if options.stickyauth:
|
||||||
self.set_stickyauth(options.stickyauth)
|
self.set_stickyauth(options.stickyauth)
|
||||||
|
|
||||||
if options.wfile:
|
if options.outfile:
|
||||||
path = os.path.expanduser(options.wfile)
|
path = os.path.expanduser(options.outfile[0])
|
||||||
try:
|
try:
|
||||||
f = file(path, "wb")
|
f = file(path, options.outfile[1])
|
||||||
self.start_stream(f, self.filt)
|
self.start_stream(f, self.filt)
|
||||||
except IOError, v:
|
except IOError, v:
|
||||||
raise DumpError(v.strerror)
|
raise DumpError(v.strerror)
|
||||||
|
@ -143,9 +143,16 @@ class TestDumpMaster:
|
|||||||
def test_write(self):
|
def test_write(self):
|
||||||
with tutils.tmpdir() as d:
|
with tutils.tmpdir() as d:
|
||||||
p = os.path.join(d, "a")
|
p = os.path.join(d, "a")
|
||||||
self._dummy_cycle(1, None, "", wfile=p, verbosity=0)
|
self._dummy_cycle(1, None, "", outfile=(p,"wb"), verbosity=0)
|
||||||
assert len(list(flow.FlowReader(open(p,"rb")).stream())) == 1
|
assert len(list(flow.FlowReader(open(p,"rb")).stream())) == 1
|
||||||
|
|
||||||
|
def test_write_append(self):
|
||||||
|
with tutils.tmpdir() as d:
|
||||||
|
p = os.path.join(d, "a.append")
|
||||||
|
self._dummy_cycle(1, None, "", outfile=(p,"wb"), verbosity=0)
|
||||||
|
self._dummy_cycle(1, None, "", outfile=(p,"ab"), verbosity=0)
|
||||||
|
assert len(list(flow.FlowReader(open(p,"rb")).stream())) == 2
|
||||||
|
|
||||||
def test_write_err(self):
|
def test_write_err(self):
|
||||||
tutils.raises(
|
tutils.raises(
|
||||||
dump.DumpError,
|
dump.DumpError,
|
||||||
@ -153,7 +160,7 @@ class TestDumpMaster:
|
|||||||
1,
|
1,
|
||||||
None,
|
None,
|
||||||
"",
|
"",
|
||||||
wfile = "nonexistentdir/foo"
|
outfile = ("nonexistentdir/foo", "wb")
|
||||||
)
|
)
|
||||||
|
|
||||||
def test_script(self):
|
def test_script(self):
|
||||||
|
Loading…
Reference in New Issue
Block a user