diff options
author | Aldo Cortesi <aldo@nullcube.com> | 2012-07-06 22:21:44 +1200 |
---|---|---|
committer | Aldo Cortesi <aldo@nullcube.com> | 2012-07-06 22:21:44 +1200 |
commit | d02bcade3ab919da5133a32f2732e0a675fccc32 (patch) | |
tree | 71fe6e3bbf755b0aa1262a2b15561d669f2b56c8 | |
parent | c4426952ad5f2f48e4684d3a902e4a7a586545ce (diff) | |
download | mitmproxy-d02bcade3ab919da5133a32f2732e0a675fccc32.tar.gz mitmproxy-d02bcade3ab919da5133a32f2732e0a675fccc32.tar.bz2 mitmproxy-d02bcade3ab919da5133a32f2732e0a675fccc32.zip |
Add a domain match filter (~d regex)
-rw-r--r-- | libmproxy/console/__init__.py | 4 | ||||
-rw-r--r-- | libmproxy/filt.py | 8 | ||||
-rw-r--r-- | test/test_filt.py | 6 |
3 files changed, 16 insertions, 2 deletions
diff --git a/libmproxy/console/__init__.py b/libmproxy/console/__init__.py index 5501b935..72776542 100644 --- a/libmproxy/console/__init__.py +++ b/libmproxy/console/__init__.py @@ -992,6 +992,6 @@ class ConsoleMaster(flow.FlowMaster): f = flow.FlowMaster.handle_response(self, r) if f: self.process_flow(f, r) - if self.stream: - self.stream.add(f) + if self.stream: + self.stream.add(f) return f diff --git a/libmproxy/filt.py b/libmproxy/filt.py index 3e4ebe57..937cc29d 100644 --- a/libmproxy/filt.py +++ b/libmproxy/filt.py @@ -182,6 +182,13 @@ class FMethod(_Rex): return bool(re.search(self.expr, f.request.method, re.IGNORECASE)) +class FDomain(_Rex): + code = "d" + help = "Domain" + def __call__(self, f): + return bool(re.search(self.expr, f.request.host, re.IGNORECASE)) + + class FUrl(_Rex): code = "u" help = "URL" @@ -260,6 +267,7 @@ filt_rex = [ FBodResponse, FBod, FMethod, + FDomain, FUrl, FRequestContentType, FResponseContentType, diff --git a/test/test_filt.py b/test/test_filt.py index 2421c327..1cea34c4 100644 --- a/test/test_filt.py +++ b/test/test_filt.py @@ -195,6 +195,12 @@ class TestMatching: q.request.method = "oink" assert not self.q("~m get", q) + def test_domain(self): + q = self.req() + s = self.resp() + assert self.q("~d host", q) + assert not self.q("~d none", q) + def test_url(self): q = self.req() s = self.resp() |