clue · GitHub

This changeset improves how the HTTP client closes outgoing TCP/IP connections when the response stream closes. This should not affect "normal" operation of well-behaving peers, but would be relatively easy to trigger depending on which HTTP headers the request and response specified. Previously, connections may have been kept in an idle state instead of properly closing the connection and freeing underlying system resources.

Applying these changes required a significant refactoring of the existing logic first and also happens to be a prerequisite for upcoming HTTP keep-alive handling that will be taken care of in a follow-up PR. This does not otherwise affect the public React\Http\Browser class or any other public APIs, so this should be safe to apply. The test suite confirms this has 100% code coverage and does not otherwise affect our public APIs.

Builds on top of #481 and #480
Done in preparation for #468 (HTTP keep-alive)
Also refs #376 (future support for HTTP upgrades)

Read the original on github.com ↗