aboutsummaryrefslogtreecommitdiff
path: root/src/hydrilla/proxy/policies/misc.py
diff options
context:
space:
mode:
authorWojtek Kosior <koszko@koszko.org>2022-10-20 21:57:47 +0200
committerWojtek Kosior <koszko@koszko.org>2022-10-20 21:57:47 +0200
commit55b95d70b24cfa1b4703ae442a3c6d1781cc95aa (patch)
treec6a33b401af373d7591e46e21dede0609313a140 /src/hydrilla/proxy/policies/misc.py
parent3beab050c339c51c484af9bcd8248ba8ebbbf4d4 (diff)
downloadhaketilo-hydrilla-55b95d70b24cfa1b4703ae442a3c6d1781cc95aa.tar.gz
haketilo-hydrilla-55b95d70b24cfa1b4703ae442a3c6d1781cc95aa.zip
[proxy] rework internal HTTP headers representation
Diffstat (limited to 'src/hydrilla/proxy/policies/misc.py')
-rw-r--r--src/hydrilla/proxy/policies/misc.py15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/hydrilla/proxy/policies/misc.py b/src/hydrilla/proxy/policies/misc.py
index 71692b3..81875a2 100644
--- a/src/hydrilla/proxy/policies/misc.py
+++ b/src/hydrilla/proxy/policies/misc.py
@@ -58,16 +58,19 @@ class ErrorBlockPolicy(BlockPolicy):
builtin: bool = True
-class DoNothingPolicy(base.Policy):
+
+class MitmItPagePolicy(base.Policy):
"""
A special policy class for handling of the magical mitm.it domain. It causes
- request and response not to be modified in any way, and also (unlike
+ request and response not to be modified in any way and also (unlike
FallbackAllowPolicy) prevents them from being streamed.
"""
_process_request: t.ClassVar[bool] = True
_process_response: t.ClassVar[bool] = True
anticache: t.ClassVar[bool] = False
+ priority: t.ClassVar[base.PolicyPriority] = base.PolicyPriority._THREE
+
def consume_request(self, request_info: http_messages.RequestInfo) -> None:
return None
@@ -79,3 +82,11 @@ class DoNothingPolicy(base.Policy):
return None
builtin: bool = True
+
+@dc.dataclass(frozen=True, unsafe_hash=True)
+class MitmItPagePolicyFactory(base.PolicyFactory):
+ builtin: bool = True
+
+ def make_policy(self, haketilo_state: state.HaketiloState) \
+ -> MitmItPagePolicy:
+ return MitmItPagePolicy()