diff options
author | Wojtek Kosior <koszko@koszko.org> | 2022-10-10 15:01:08 +0200 |
---|---|---|
committer | Wojtek Kosior <koszko@koszko.org> | 2022-10-10 15:01:08 +0200 |
commit | b880bdc779b800ebde810279d1cf5b9e530000de (patch) | |
tree | bdf867969da926b38c021e964d06c0052a6bc28c /src/hydrilla/proxy/addon.py | |
parent | 39ba8a202f4010286b99c3ac34003ffa329153c5 (diff) | |
download | haketilo-hydrilla-b880bdc779b800ebde810279d1cf5b9e530000de.tar.gz haketilo-hydrilla-b880bdc779b800ebde810279d1cf5b9e530000de.zip |
[proxy] make it possible to access http://mitm.it magical domain
Diffstat (limited to 'src/hydrilla/proxy/addon.py')
-rw-r--r-- | src/hydrilla/proxy/addon.py | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/src/hydrilla/proxy/addon.py b/src/hydrilla/proxy/addon.py index 2185bcb..b8ad819 100644 --- a/src/hydrilla/proxy/addon.py +++ b/src/hydrilla/proxy/addon.py @@ -34,6 +34,7 @@ from addon script. from __future__ import annotations import sys +import re import typing as t import dataclasses as dc import traceback as tb @@ -91,6 +92,10 @@ class FlowHandlingData: policy: policies.Policy +magical_mitm_it_url_reg = re.compile(r'^http://mitm.it(/.*)?$') +dummy_url = parse_url('http://dummy.replacement.url') + + @dc.dataclass class HaketiloAddon: """ @@ -142,11 +147,16 @@ class HaketiloAddon: handling_data = self.flows_data.get(id(flow)) if handling_data is None: - try: - parsed_url = parse_url(flow.request.url) - policy = self.state.select_policy(parsed_url) - except HaketiloException as e: - policy = policies.ErrorBlockPolicy(builtin=True, error=e) + parsed_url = dummy_url + + if magical_mitm_it_url_reg.match(flow.request.url): + policy = policies.DoNothingPolicy() + else: + try: + parsed_url = parse_url(flow.request.url) + policy = self.state.select_policy(parsed_url) + except HaketiloException as e: + policy = policies.ErrorBlockPolicy(builtin=True, error=e) handling_data = FlowHandlingData(parsed_url, policy) |