Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consistently close HTTP client connections when response stream closes #484

Merged
merged 3 commits into from
Jan 19, 2023

Conversation

clue
Copy link
Member

@clue clue commented Jan 18, 2023

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)

@clue clue added this to the v1.9.0 milestone Jan 18, 2023
@clue clue force-pushed the connection-close branch 2 times, most recently from f8e2b07 to 13e6cd3 Compare January 18, 2023 12:56
@clue clue force-pushed the connection-close branch from 13e6cd3 to 28b598a Compare January 18, 2023 12:58
Copy link
Member

@SimonFrings SimonFrings left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants