Skip to content

feat(timeout): WIP TotalTimeoutBody for absolute timeout#653

Closed
ghost wants to merge 2 commits intomainfrom
unknown repository
Closed

feat(timeout): WIP TotalTimeoutBody for absolute timeout#653
ghost wants to merge 2 commits intomainfrom
unknown repository

Conversation

@ghost
Copy link

@ghost ghost commented Feb 20, 2026

Motivation

Hi everyone!

I saw issue #630 about needing a timeout that doesn't reset on every frame, and I thought I'd try to implement the core logic for it. I think this could also be beneficial for preventing slowloris (form of DDoS attack) but lmk if it's actually not the case!

Solution

I've implemented TotalTimeoutBody. It's a struct that enforces an absolute deadline on the request/response body. Unlike the existing TimeoutBody (which resets the timer on every byte), this one guarantees the connection closes after a fixed time.

I haven't added the tests or the Layer structs (middleware) yet. I wanted to open this PR first to ask:

  • Is this something you'd be interested in merging? 🤔
  • Does the implementation of TotalTimeoutBody look okay?

If the answer is yes, I'll happily add the middleware layers (it'll be almost a 1-to-1 copy of the existing timeout layers) and the tests to make sure it catches those slow requests.

@ghost ghost closed this by deleting the head repository Feb 23, 2026
This pull request was closed.
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.

0 participants