From ff104f54b5fe613389c8d331e4067a8731f627f1 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Tue, 30 Apr 2024 11:43:58 -0500 Subject: [PATCH] Small performance improvements to ingress forwarding (#116457) --- homeassistant/components/hassio/ingress.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/homeassistant/components/hassio/ingress.py b/homeassistant/components/hassio/ingress.py index ed6e47145dd..2bd1caf8977 100644 --- a/homeassistant/components/hassio/ingress.py +++ b/homeassistant/components/hassio/ingress.py @@ -177,11 +177,13 @@ class HassIOIngress(HomeAssistantView): if maybe_content_type := result.headers.get(hdrs.CONTENT_TYPE): content_type: str = (maybe_content_type.partition(";"))[0].strip() else: - content_type = result.content_type + # default value according to RFC 2616 + content_type = "application/octet-stream" + # Simple request if result.status in (204, 304) or ( content_length is not UNDEFINED - and (content_length_int := int(content_length or 0)) + and (content_length_int := int(content_length)) <= MAX_SIMPLE_RESPONSE_SIZE ): # Return Response @@ -194,17 +196,17 @@ class HassIOIngress(HomeAssistantView): zlib_executor_size=32768, ) if content_length_int > MIN_COMPRESSED_SIZE and should_compress( - content_type or simple_response.content_type + content_type ): simple_response.enable_compression() return simple_response # Stream response response = web.StreamResponse(status=result.status, headers=headers) - response.content_type = result.content_type + response.content_type = content_type try: - if should_compress(response.content_type): + if should_compress(content_type): response.enable_compression() await response.prepare(request) # In testing iter_chunked, iter_any, and iter_chunks: