Compare commits

...
Sign in to create a new pull request.

1 commit

Author SHA1 Message Date
J. Nick Koston
ea726e14c6
Ensure hassio does not do blocking I/O to get forwarded host
request.host can fallback to doing blocking I/O because of
https://github.com/aio-libs/aiohttp/issues/9308
2024-09-27 03:33:36 -05:00

View file

@ -253,15 +253,17 @@ def _init_header(request: web.Request, token: str) -> CIMultiDict | dict[str, st
headers[hdrs.X_FORWARDED_FOR] = _forwarded_for_header(forward_for, peername[0]) headers[hdrs.X_FORWARDED_FOR] = _forwarded_for_header(forward_for, peername[0])
# Set X-Forwarded-Host # Set X-Forwarded-Host
if not (forward_host := request.headers.get(hdrs.X_FORWARDED_HOST)): # Avoid calling request.host as it can fallback to doing blocking DNS lookups
forward_host = request.host # https://github.com/aio-libs/aiohttp/issues/9308
headers[hdrs.X_FORWARDED_HOST] = forward_host if forward_host := request.headers.get(
hdrs.X_FORWARDED_HOST
) or request.headers.get(hdrs.HOST):
headers[hdrs.X_FORWARDED_HOST] = forward_host
# Set X-Forwarded-Proto # Set X-Forwarded-Proto
forward_proto = request.headers.get(hdrs.X_FORWARDED_PROTO) headers[hdrs.X_FORWARDED_PROTO] = (
if not forward_proto: request.headers.get(hdrs.X_FORWARDED_PROTO) or request.scheme
forward_proto = request.scheme )
headers[hdrs.X_FORWARDED_PROTO] = forward_proto
return headers return headers