Merge pull request #1610 from mhils/issue-1605

Fix #1605
This commit is contained in:
Maximilian Hils 2016-10-14 02:00:36 -07:00 committed by GitHub
commit d5873302c1
2 changed files with 19 additions and 12 deletions

View File

@ -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):

View File

@ -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