diff --git a/uvicorn/protocols/http/h11_impl.py b/uvicorn/protocols/http/h11_impl.py index 89e550229..556b94f2e 100644 --- a/uvicorn/protocols/http/h11_impl.py +++ b/uvicorn/protocols/http/h11_impl.py @@ -145,6 +145,7 @@ def connection_lost(self, exc: Optional[Exception]) -> None: self.flow.resume_writing() if exc is None: self.transport.close() + self._unset_keepalive_if_required() def eof_received(self) -> None: pass diff --git a/uvicorn/protocols/http/httptools_impl.py b/uvicorn/protocols/http/httptools_impl.py index d9f294129..5035ec935 100644 --- a/uvicorn/protocols/http/httptools_impl.py +++ b/uvicorn/protocols/http/httptools_impl.py @@ -137,6 +137,9 @@ def connection_lost(self, exc: Optional[Exception]) -> None: self.flow.resume_writing() if exc is None: self.transport.close() + self._unset_keepalive_if_required() + + self.parser = None def eof_received(self) -> None: pass