diff --git a/mitmproxy/console/master.py b/mitmproxy/console/master.py index 257765124..16abcb96a 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 8388a6bdd..e57846ae5 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