aboutsummaryrefslogtreecommitdiffstats
path: root/mitmproxy/filt.py
diff options
context:
space:
mode:
authorShadab Zafar <dufferzafar0@gmail.com>2016-07-15 14:35:18 +0530
committerShadab Zafar <dufferzafar0@gmail.com>2016-07-16 10:15:38 +0530
commit262a42055344b9ece7b94dc8ed762d8a9a8882de (patch)
tree33f2e826a0d19b5929edde412b096159615c61eb /mitmproxy/filt.py
parent5f7d61f864c93e9a2ee5d6f3a0a1563ea0ac8741 (diff)
downloadmitmproxy-262a42055344b9ece7b94dc8ed762d8a9a8882de.tar.gz
mitmproxy-262a42055344b9ece7b94dc8ed762d8a9a8882de.tar.bz2
mitmproxy-262a42055344b9ece7b94dc8ed762d8a9a8882de.zip
Use ~bq / ~bs for messages sent from client / server
Diffstat (limited to 'mitmproxy/filt.py')
-rw-r--r--mitmproxy/filt.py34
1 files changed, 20 insertions, 14 deletions
diff --git a/mitmproxy/filt.py b/mitmproxy/filt.py
index 00971218..e0e5606b 100644
--- a/mitmproxy/filt.py
+++ b/mitmproxy/filt.py
@@ -219,18 +219,14 @@ class FBod(_Rex):
@only(HTTPFlow, TCPFlow)
def __call__(self, f):
-
- # HTTPFlow
- if hasattr(f, 'request'):
+ if isinstance(f, HTTPFlow):
if f.request and f.request.content:
if self.re.search(f.request.get_decoded_content()):
return True
if f.response and f.response.content:
if self.re.search(f.response.get_decoded_content()):
return True
-
- # TCPFlow
- elif hasattr(f, 'messages'):
+ elif isinstance(f, TCPFlow):
for msg in f.messages:
if self.re.search(msg.content):
return True
@@ -242,22 +238,32 @@ class FBodRequest(_Rex):
code = "bq"
help = "Request body"
- @only(HTTPFlow)
+ @only(HTTPFlow, TCPFlow)
def __call__(self, f):
- if f.request and f.request.content:
- if self.re.search(f.request.get_decoded_content()):
- return True
+ if isinstance(f, HTTPFlow):
+ if f.request and f.request.content:
+ if self.re.search(f.request.get_decoded_content()):
+ return True
+ elif isinstance(f, TCPFlow):
+ for msg in f.messages:
+ if msg.from_client and self.re.search(msg.content):
+ return True
class FBodResponse(_Rex):
code = "bs"
help = "Response body"
- @only(HTTPFlow)
+ @only(HTTPFlow, TCPFlow)
def __call__(self, f):
- if f.response and f.response.content:
- if self.re.search(f.response.get_decoded_content()):
- return True
+ if isinstance(f, HTTPFlow):
+ if f.response and f.response.content:
+ if self.re.search(f.response.get_decoded_content()):
+ return True
+ elif isinstance(f, TCPFlow):
+ for msg in f.messages:
+ if not msg.from_client and self.re.search(msg.content):
+ return True
class FMethod(_Rex):