aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy/filt.py
diff options
context:
space:
mode:
Diffstat (limited to 'libmproxy/filt.py')
-rw-r--r--libmproxy/filt.py25
1 files changed, 17 insertions, 8 deletions
diff --git a/libmproxy/filt.py b/libmproxy/filt.py
index bd429fa3..e17ed735 100644
--- a/libmproxy/filt.py
+++ b/libmproxy/filt.py
@@ -34,6 +34,7 @@
from __future__ import absolute_import
import re, sys
from .contrib import pyparsing as pp
+from .protocol.http import decoded
class _Token:
@@ -165,10 +166,14 @@ class FBod(_Rex):
code = "b"
help = "Body"
def __call__(self, f):
- if f.request.content and re.search(self.expr, f.request.content):
- return True
- elif f.response and f.response.content and re.search(self.expr, f.response.content):
- return True
+ if f.request and f.request.content:
+ with decoded(f.request):
+ if re.search(self.expr, f.request.content):
+ return True
+ if f.response and f.response.content:
+ with decoded(f.response):
+ if re.search(self.expr, f.response.content):
+ return True
return False
@@ -176,16 +181,20 @@ class FBodRequest(_Rex):
code = "bq"
help = "Request body"
def __call__(self, f):
- if f.request.content and re.search(self.expr, f.request.content):
- return True
+ if f.request and f.request.content:
+ with decoded(f.request):
+ if re.search(self.expr, f.request.content):
+ return True
class FBodResponse(_Rex):
code = "bs"
help = "Response body"
def __call__(self, f):
- if f.response and f.response.content and re.search(self.expr, f.response.content):
- return True
+ if f.response and f.response.content:
+ with decoded(f.response):
+ if re.search(self.expr, f.response.content):
+ return True
class FMethod(_Rex):