Skip to content

Simplify public API; refactor helper functions for keep-alive handling#22

Merged
szeka9 merged 3 commits into
mainfrom
development
Jun 21, 2026
Merged

Simplify public API; refactor helper functions for keep-alive handling#22
szeka9 merged 3 commits into
mainfrom
development

Conversation

@szeka9

@szeka9 szeka9 commented Jun 21, 2026

Copy link
Copy Markdown
Owner

No description provided.

szeka9 added 3 commits June 20, 2026 19:17
Simplify applications by adding a helper
function for obtaining URL path segments by index.
The public terminate() method exposes an optional
switch (request_complete) to indicate the completeness
of request processing. Based on this switch, a
keep-alive connection is forcefully closed if the
request body is partially processed. Such an approach
is needed to avoid incorrectly parsing a subsequent
requests with invalid framing.

This commit removes the requirement for applications
to know if the processing of a request is complete.
Instead, rely on existing content-length validation
logic to determine if a payload is fully processed.

The following changes were added:
- new state machine variable `_is_req_complete` to
indicate completeness
- update usages of the `terminate()` method to only
accept status codes
- new terminal state for updating response headers for
keep-alive connections
- the state machine is considered to reach a terminal
state regardless of status code
- new helper for resetting response body producer
- remove member `aborted`; keep-alive connection
is only based on request process completeness
`set_response_body` may be invoked multiple times
during the lifecycle of a connection. Ensure that
the response handler is reset every time the setter
is called, to avoid a stale handler to be reused.

Additionally, accept an empty/undefined response
body, and set content-length to 0 accordingly.
@szeka9 szeka9 merged commit 9423b09 into main Jun 21, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant