aboutsummaryrefslogtreecommitdiffstats
path: root/mitmproxy/filt.py
diff options
context:
space:
mode:
authorMaximilian Hils <git@maximilianhils.com>2016-07-25 15:16:16 -0700
committerMaximilian Hils <git@maximilianhils.com>2016-07-25 15:16:16 -0700
commit79ebcb046e8669f80357a6c3046ec76c6adf49be (patch)
tree441981a16f1be1e620584e4a47f41767ce5585b2 /mitmproxy/filt.py
parent3254595584e1d711e7ae292ad34753a52f7a0fc1 (diff)
parent56796aeda25dda66621ce78af227ff46049ef811 (diff)
downloadmitmproxy-79ebcb046e8669f80357a6c3046ec76c6adf49be.tar.gz
mitmproxy-79ebcb046e8669f80357a6c3046ec76c6adf49be.tar.bz2
mitmproxy-79ebcb046e8669f80357a6c3046ec76c6adf49be.zip
Merge remote-tracking branch 'origin/master' into flow_editing_v2
Diffstat (limited to 'mitmproxy/filt.py')
-rw-r--r--mitmproxy/filt.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/mitmproxy/filt.py b/mitmproxy/filt.py
index 8b647b22..67915e5b 100644
--- a/mitmproxy/filt.py
+++ b/mitmproxy/filt.py
@@ -39,9 +39,12 @@ import functools
from mitmproxy.models.http import HTTPFlow
from mitmproxy.models.tcp import TCPFlow
+from mitmproxy.models.flow import Flow
+
from netlib import strutils
import pyparsing as pp
+from typing import Callable
def only(*types):
@@ -80,6 +83,14 @@ class FErr(_Action):
return True if f.error else False
+class FMarked(_Action):
+ code = "marked"
+ help = "Match marked flows"
+
+ def __call__(self, f):
+ return f.marked
+
+
class FHTTP(_Action):
code = "http"
help = "Match HTTP flows"
@@ -398,6 +409,7 @@ filt_unary = [
FAsset,
FErr,
FHTTP,
+ FMarked,
FReq,
FResp,
FTCP,
@@ -471,7 +483,11 @@ def _make():
bnf = _make()
+TFilter = Callable[[Flow], bool]
+
+
def parse(s):
+ # type: (str) -> TFilter
try:
filt = bnf.parseString(s, parseAll=True)[0]
filt.pattern = s