From 452492a9747e9eb37096d1fac8342f2c914fd7ea Mon Sep 17 00:00:00 2001 From: klemek Date: Mon, 20 Apr 2026 17:21:55 +0200 Subject: [PATCH] fix: add x-forwarded-host header --- src/handlers.py | 1 + tests/test_handlers.py | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/src/handlers.py b/src/handlers.py index 2d082b3..3887a78 100644 --- a/src/handlers.py +++ b/src/handlers.py @@ -136,6 +136,7 @@ class BaseHandler(abc.ABC, http.server.BaseHTTPRequestHandler): def send_proxy(self, url: str) -> None: headers = dict(self.headers) headers["Host"] = urllib.parse.urlparse(url).netloc + headers["X-Forwarded-Host"] = self.host headers["X-Forwarded-For"] = self.client_address[0] headers["X-Real-IP"] = self.client_address[0] try: diff --git a/tests/test_handlers.py b/tests/test_handlers.py index c91be42..0d79e36 100644 --- a/tests/test_handlers.py +++ b/tests/test_handlers.py @@ -756,6 +756,7 @@ class TestRequestHandler(BaseHandlerTestCase): "data": None, "headers": { "Host": "example.com", + "X-Forwarded-Host": "localhost", "X-Forwarded-For": "127.0.0.1", "X-Real-IP": "127.0.0.1", }, @@ -795,6 +796,7 @@ class TestRequestHandler(BaseHandlerTestCase): "data": b"hello", "headers": { "Host": "example.com", + "X-Forwarded-Host": "localhost", "X-Forwarded-For": "127.0.0.1", "X-Real-IP": "127.0.0.1", "Content-Length": "5", @@ -834,6 +836,7 @@ class TestRequestHandler(BaseHandlerTestCase): "data": None, "headers": { "Host": "example.com", + "X-Forwarded-Host": "localhost", "X-Forwarded-For": "127.0.0.1", "X-Real-IP": "127.0.0.1", }, @@ -864,6 +867,7 @@ class TestRequestHandler(BaseHandlerTestCase): "data": None, "headers": { "Host": "example.com", + "X-Forwarded-Host": "localhost", "X-Forwarded-For": "127.0.0.1", "X-Real-IP": "127.0.0.1", }, @@ -903,6 +907,7 @@ class TestRequestHandler(BaseHandlerTestCase): "data": None, "headers": { "Host": "example.com", + "X-Forwarded-Host": "localhost", "X-Forwarded-For": "127.0.0.1", "X-Real-IP": "127.0.0.1", }, @@ -939,6 +944,7 @@ class TestRequestHandler(BaseHandlerTestCase): "data": None, "headers": { "Host": "example.com", + "X-Forwarded-Host": "host", "X-Forwarded-For": "127.0.0.1", "X-Real-IP": "127.0.0.1", },