Skip to content

Commit d4c0914

Browse files
[PR #9693/dd0b6e37 backport][3.11] Avoid duplicate content_length fetch to prepare web response headers (#9703)
Co-authored-by: J. Nick Koston <[email protected]>
1 parent 685768a commit d4c0914

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

aiohttp/web_response.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -483,7 +483,7 @@ async def _prepare_headers(self) -> None:
483483
headers[hdrs.TRANSFER_ENCODING] = "chunked"
484484
if hdrs.CONTENT_LENGTH in headers:
485485
del headers[hdrs.CONTENT_LENGTH]
486-
elif self._length_check:
486+
elif self._length_check: # Disabled for WebSockets
487487
writer.length = self.content_length
488488
if writer.length is None:
489489
if version >= HttpVersion11:
@@ -504,7 +504,7 @@ async def _prepare_headers(self) -> None:
504504
# https://datatracker.ietf.org/doc/html/rfc9112#section-6.1-13
505505
if hdrs.TRANSFER_ENCODING in headers:
506506
del headers[hdrs.TRANSFER_ENCODING]
507-
elif self.content_length != 0:
507+
elif (writer.length if self._length_check else self.content_length) != 0:
508508
# https://www.rfc-editor.org/rfc/rfc9110#section-8.3-5
509509
headers.setdefault(hdrs.CONTENT_TYPE, "application/octet-stream")
510510
headers.setdefault(hdrs.DATE, rfc822_formatted_time())

0 commit comments

Comments
 (0)