diff --git a/stapler/handlers.py b/stapler/handlers.py index dbedbdf..234a98e 100644 --- a/stapler/handlers.py +++ b/stapler/handlers.py @@ -25,6 +25,8 @@ if typing.TYPE_CHECKING: class BaseHandler(abc.ABC, http.server.BaseHTTPRequestHandler): + SANITIZE_REGEX = re.compile(r"[^\x20-\x7F]+") + @typing.override def __init__( self, @@ -77,7 +79,7 @@ class BaseHandler(abc.ABC, http.server.BaseHTTPRequestHandler): @typing.override def address_string(self) -> str: # pragma: no cover - return re.sub(r"[^\x00-\x7F]+", "", super().address_string()) + return self.SANITIZE_REGEX.sub("?", super().address_string()) @typing.override def log_message(self, format: str, *args: typing.Any) -> None: # pragma: no cover @@ -108,7 +110,7 @@ class BaseHandler(abc.ABC, http.server.BaseHTTPRequestHandler): code, self.address_string(), self.host, - re.sub(r"[^\x00-\x7F]+", "?", self.requestline), + self.SANITIZE_REGEX.sub("?", self.requestline), ) fmt = "→ %s - %s - %s - %s" if size != "": @@ -238,7 +240,7 @@ class BaseHandler(abc.ABC, http.server.BaseHTTPRequestHandler): "...", self.address_string(), self.host, - re.sub(r"[^\x00-\x7F]+", "?", self.requestline), + self.SANITIZE_REGEX.sub("?", self.requestline), ) fmt = "← %s - %s - %s - %s" if self.in_size > 0: