26 lines
648 B
Python
26 lines
648 B
Python
"""
|
|
Use mitmproxy's filter pattern in scripts.
|
|
"""
|
|
from mitmproxy import flowfilter
|
|
from mitmproxy import ctx, http
|
|
|
|
|
|
class Filter:
|
|
def __init__(self):
|
|
self.filter: flowfilter.TFilter = None
|
|
|
|
def configure(self, updated):
|
|
if "flowfilter" in updated:
|
|
self.filter = flowfilter.parse(ctx.options.flowfilter)
|
|
|
|
def load(self, l):
|
|
l.add_option("flowfilter", str, "", "Check that flow matches filter.")
|
|
|
|
def response(self, flow: http.HTTPFlow) -> None:
|
|
if flowfilter.match(self.filter, flow):
|
|
ctx.log.info("Flow matches filter:")
|
|
ctx.log.info(flow)
|
|
|
|
|
|
addons = [Filter()]
|