mirror of
https://github.com/zhigang1992/mitmproxy.git
synced 2026-04-24 04:14:57 +08:00
@@ -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):
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user