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, +	} +} | 
