aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@corte.si>2017-03-19 13:21:46 +1300
committerAldo Cortesi <aldo@corte.si>2017-03-19 13:21:46 +1300
commit22d7c31ea8cad01614debe674826841f843fd318 (patch)
treec8ab446c6276a013af9aa5dab73e1d38ebb15bb7
parent475a4e3eb03e2a704f078e1bb7f11fd199b0bb52 (diff)
downloadmitmproxy-22d7c31ea8cad01614debe674826841f843fd318.tar.gz
mitmproxy-22d7c31ea8cad01614debe674826841f843fd318.tar.bz2
mitmproxy-22d7c31ea8cad01614debe674826841f843fd318.zip
dumper, mitmdump: kill filtstr
Dumper now also uses view_filter. Passing arguments to mitmdump is now precisely equivalent to setting both filestream_filter and view_filter.
-rw-r--r--mitmproxy/addons/dumper.py8
-rw-r--r--mitmproxy/options.py4
-rw-r--r--mitmproxy/tools/cmdline.py4
-rw-r--r--mitmproxy/tools/main.py20
-rw-r--r--test/mitmproxy/addons/test_dumper.py6
-rw-r--r--test/mitmproxy/tools/test_dump.py2
6 files changed, 28 insertions, 16 deletions
diff --git a/mitmproxy/addons/dumper.py b/mitmproxy/addons/dumper.py
index 222f1167..ca0d32d3 100644
--- a/mitmproxy/addons/dumper.py
+++ b/mitmproxy/addons/dumper.py
@@ -35,12 +35,12 @@ class Dumper:
self.default_contentview = "auto" # type: str
def configure(self, options, updated):
- if "filtstr" in updated:
- if options.filtstr:
- self.filter = flowfilter.parse(options.filtstr)
+ if "view_filter" in updated:
+ if options.view_filter:
+ self.filter = flowfilter.parse(options.view_filter)
if not self.filter:
raise exceptions.OptionsError(
- "Invalid filter expression: %s" % options.filtstr
+ "Invalid filter expression: %s" % options.view_filter
)
else:
self.filter = None
diff --git a/mitmproxy/options.py b/mitmproxy/options.py
index 9acdbc29..fa89b807 100644
--- a/mitmproxy/options.py
+++ b/mitmproxy/options.py
@@ -424,10 +424,6 @@ class Options(optmanager.OptManager):
# Dump options
self.add_option(
- "filtstr", Optional[str], None,
- "The filter string for mitmdump."
- )
- self.add_option(
"flow_detail", int, 1,
"Flow detail display level."
)
diff --git a/mitmproxy/tools/cmdline.py b/mitmproxy/tools/cmdline.py
index da091c12..edb44669 100644
--- a/mitmproxy/tools/cmdline.py
+++ b/mitmproxy/tools/cmdline.py
@@ -122,8 +122,8 @@ def mitmdump(opts):
'filter_args',
nargs="...",
help="""
- Filter view expression, used to only show flows that match a certain
- filter. See help in mitmproxy for filter expression syntax.
+ Filter expression, equivalent to setting both the view_filter
+ and streamfile_filter options.
"""
)
return parser
diff --git a/mitmproxy/tools/main.py b/mitmproxy/tools/main.py
index b321e8f8..6db232fc 100644
--- a/mitmproxy/tools/main.py
+++ b/mitmproxy/tools/main.py
@@ -60,7 +60,11 @@ def process_options(parser, opts, args):
return server.DummyServer(pconf)
-def run(MasterKlass, args): # pragma: no cover
+def run(MasterKlass, args, extra=None): # pragma: no cover
+ """
+ extra: Extra argument processing callable which returns a dict of
+ options.
+ """
version_check.check_pyopenssl_version()
debug.register_info_dumpers()
@@ -80,6 +84,8 @@ def run(MasterKlass, args): # pragma: no cover
print(optmanager.dump_defaults(opts))
sys.exit(0)
opts.set(*args.setoptions)
+ if extra:
+ opts.update(**extra(args))
def cleankill(*args, **kwargs):
master.shutdown()
@@ -107,7 +113,17 @@ def mitmproxy(args=None): # pragma: no cover
def mitmdump(args=None): # pragma: no cover
from mitmproxy.tools import dump
- m = run(dump.DumpMaster, args)
+
+ def extra(args):
+ if args.filter_args:
+ v = " ".join(args.filter_args)
+ return dict(
+ view_filter = v,
+ streamfile_filter = v,
+ )
+ return {}
+
+ m = run(dump.DumpMaster, args, extra)
if m and m.errorcheck.has_errored:
sys.exit(1)
diff --git a/test/mitmproxy/addons/test_dumper.py b/test/mitmproxy/addons/test_dumper.py
index fbcc4d16..d2cefe79 100644
--- a/test/mitmproxy/addons/test_dumper.py
+++ b/test/mitmproxy/addons/test_dumper.py
@@ -16,7 +16,7 @@ from mitmproxy import options
def test_configure():
d = dumper.Dumper()
with taddons.context(options=options.Options()) as ctx:
- ctx.configure(d, filtstr="~b foo")
+ ctx.configure(d, view_filter="~b foo")
assert d.filter
f = tflow.tflow(resp=True)
@@ -24,10 +24,10 @@ def test_configure():
f.response.content = b"foo"
assert d.match(f)
- ctx.configure(d, filtstr=None)
+ ctx.configure(d, view_filter=None)
assert not d.filter
with pytest.raises(exceptions.OptionsError):
- ctx.configure(d, filtstr="~~")
+ ctx.configure(d, view_filter="~~")
assert not d.filter
diff --git a/test/mitmproxy/tools/test_dump.py b/test/mitmproxy/tools/test_dump.py
index 8e2fa5b2..69a76d2e 100644
--- a/test/mitmproxy/tools/test_dump.py
+++ b/test/mitmproxy/tools/test_dump.py
@@ -12,7 +12,7 @@ from .. import tservers
class TestDumpMaster(tservers.MasterTest):
def mkmaster(self, flt, **opts):
- o = options.Options(filtstr=flt, verbosity=-1, flow_detail=0, **opts)
+ o = options.Options(view_filter=flt, verbosity=-1, flow_detail=0, **opts)
m = dump.DumpMaster(o, proxy.DummyServer(), with_termlog=False, with_dumper=False)
return m