This commit is contained in:
Maximilian Hils 2016-10-25 21:56:13 -07:00
parent a0ad0b06a0
commit f11b289c39
3 changed files with 13 additions and 8 deletions

View File

@ -2,6 +2,7 @@ import time
import copy
import uuid
from mitmproxy import controller # noqa
from mitmproxy import stateobject
from mitmproxy import connections
from mitmproxy import version
@ -80,7 +81,7 @@ class Flow(stateobject.StateObject):
self.error = None # type: Optional[Error]
self.intercepted = False # type: bool
self._backup = None # type: Optional[Flow]
self.reply = None
self.reply = None # type: Optional[controller.Reply]
self.marked = False # type: bool
_stateobject_attributes = dict(

View File

@ -659,11 +659,10 @@ class ConsoleMaster(master.Master):
)
def process_flow(self, f):
should_intercept = any(
[
self.state.intercept and flowfilter.match(self.state.intercept, f) and not f.request.is_replay,
f.intercepted,
]
should_intercept = (
self.state.intercept and flowfilter.match(self.state.intercept, f)
and not f.request.is_replay
and f.reply.state == "handled"
)
if should_intercept:
f.intercept(self)

View File

@ -9,6 +9,7 @@ from typing import Optional
from mitmproxy import addons
from mitmproxy import controller
from mitmproxy import exceptions
from mitmproxy import flowfilter
from mitmproxy.addons import state
from mitmproxy import options
from mitmproxy import master
@ -179,8 +180,12 @@ class WebMaster(master.Master):
self.shutdown()
def _process_flow(self, f):
if self.state.intercept and self.state.intercept(
f) and not f.request.is_replay:
should_intercept = (
self.state.intercept and flowfilter.match(self.state.intercept, f)
and not f.request.is_replay
and f.reply.state == "handled"
)
if should_intercept:
f.intercept(self)
return f