diff options
author | 2023-11-13 19:48:51 +0100 | |
---|---|---|
committer | 2023-11-13 19:48:51 +0100 | |
commit | 8d0c017cf205bcf57630c91b53079001deed4d36 (patch) | |
tree | cf2240e3dff137df2871c9b93548a885833e9a52 /internal/gtserror/withcode.go | |
parent | [chore] update otel -> v1.20.0 (#2358) (diff) | |
download | gotosocial-8d0c017cf205bcf57630c91b53079001deed4d36.tar.xz |
[feature/performance] Wrap incoming HTTP requests in timeout handler (#2353)
* deinterface router, start messing about with deadlines
* weeeee
* thanks linter (thinter)
* write Connection: close when timing out requests
* update wording
* don't replace req
* don't bother with fancy Cause functions (I'll use them one day...)
Diffstat (limited to 'internal/gtserror/withcode.go')
-rw-r--r-- | internal/gtserror/withcode.go | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/internal/gtserror/withcode.go b/internal/gtserror/withcode.go index 55fe7502a..d17a4e42e 100644 --- a/internal/gtserror/withcode.go +++ b/internal/gtserror/withcode.go @@ -198,3 +198,14 @@ func NewErrorClientClosedRequest(original error) WithCode { code: StatusClientClosedRequest, } } + +// NewErrorRequestTimeout returns an ErrorWithCode 408 with the given original error. +// This error type should only be used when the server has decided to hang up a client +// request after x amount of time, to avoid keeping extremely slow client requests open. +func NewErrorRequestTimeout(original error) WithCode { + return withCode{ + original: original, + safe: errors.New(http.StatusText(http.StatusRequestTimeout)), + code: http.StatusRequestTimeout, + } +} |