Pylons / waitress

Waitress - A WSGI server for Python 3
https://docs.pylonsproject.org/projects/waitress/en/latest/
Other
1.44k stars 164 forks source link

Always attempt to set the `Connection: close` response header #429

Closed zanieb closed 7 months ago

zanieb commented 8 months ago

While working on https://github.com/Pylons/waitress/pull/428, I pondered the idea that closing the connection should cause client-side complaints of broken connections. It looks like Task.close_on_finish is sometimes set to true alongside a Connection: close header and other times not. If headers have not been written yet, it makes sense to always include Connection: close when close_on_finish is set. This pull request adds a utility that sets both of these values together. This results in better connection handling for clients.

There are a couple caveats:

There is also not particularly simple way to ensure that people call this method correctly unless we want to introduce a property for this variable — but I'm not really into properties with side-effects.

I believe this change does not invalidate #428 but it does also resolve #427.