aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mitmproxy/console/master.py18
-rw-r--r--test/mitmproxy/console/test_master.py13
2 files changed, 19 insertions, 12 deletions
diff --git a/mitmproxy/console/master.py b/mitmproxy/console/master.py
index 25776512..16abcb96 100644
--- a/mitmproxy/console/master.py
+++ b/mitmproxy/console/master.py
@@ -685,24 +685,18 @@ class ConsoleMaster(flow.FlowMaster):
# Handlers
@controller.handler
def error(self, f):
- f = flow.FlowMaster.error(self, f)
- if f:
- self.process_flow(f)
- return f
+ super(ConsoleMaster, self).error(f)
+ self.process_flow(f)
@controller.handler
def request(self, f):
- f = flow.FlowMaster.request(self, f)
- if f:
- self.process_flow(f)
- return f
+ super(ConsoleMaster, self).request(f)
+ self.process_flow(f)
@controller.handler
def response(self, f):
- f = flow.FlowMaster.response(self, f)
- if f:
- self.process_flow(f)
- return f
+ super(ConsoleMaster, self).response(f)
+ self.process_flow(f)
@controller.handler
def tcp_message(self, f):
diff --git a/test/mitmproxy/console/test_master.py b/test/mitmproxy/console/test_master.py
index 8388a6bd..e57846ae 100644
--- a/test/mitmproxy/console/test_master.py
+++ b/test/mitmproxy/console/test_master.py
@@ -122,3 +122,16 @@ class TestMaster(mastertest.MasterTest):
for i in (1, 2, 3):
self.dummy_cycle(m, 1, b"")
assert len(m.state.flows) == i
+
+ def test_intercept(self):
+ """regression test for https://github.com/mitmproxy/mitmproxy/issues/1605"""
+ m = self.mkmaster(intercept="~b bar")
+ f = tutils.tflow(req=netlib.tutils.treq(content=b"foo"))
+ m.request(f)
+ assert not m.state.flows[0].intercepted
+ f = tutils.tflow(req=netlib.tutils.treq(content=b"bar"))
+ m.request(f)
+ assert m.state.flows[1].intercepted
+ f = tutils.tflow(resp=netlib.tutils.tresp(content=b"bar"))
+ m.request(f)
+ assert m.state.flows[2].intercepted