From 08b70d8b913f038ba803ec42b26830469346a60a Mon Sep 17 00:00:00 2001 From: DarthSim Date: Mon, 22 Mar 2021 22:45:37 +0600 Subject: [PATCH] Better imgproxyError handling --- download.go | 2 +- errors.go | 7 +++++++ server.go | 9 +-------- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/download.go b/download.go index 036025af..d9517413 100644 --- a/download.go +++ b/download.go @@ -116,7 +116,7 @@ func checkTypeAndDimensions(r io.Reader) (imageType, error) { return imageTypeUnknown, errSourceImageTypeNotSupported } if err != nil { - return imageTypeUnknown, newUnexpectedError(err.Error(), 0) + return imageTypeUnknown, wrapError(err, 0) } imgtype, imgtypeOk := imageTypes[meta.Format()] diff --git a/errors.go b/errors.go index d99ecf54..6ebd434d 100644 --- a/errors.go +++ b/errors.go @@ -55,6 +55,13 @@ func newUnexpectedError(msg string, skip int) *imgproxyError { } } +func wrapError(err error, skip int) *imgproxyError { + if ierr, ok := err.(*imgproxyError); ok { + return ierr + } + return newUnexpectedError(err.Error(), skip+1) +} + func callers(skip int) []uintptr { stack := make([]uintptr, 10) n := runtime.Callers(skip, stack) diff --git a/server.go b/server.go index 7815a2d0..5b628944 100644 --- a/server.go +++ b/server.go @@ -102,14 +102,7 @@ func withSecret(h routeHandler) routeHandler { } func handlePanic(reqID string, rw http.ResponseWriter, r *http.Request, err error) { - var ( - ierr *imgproxyError - ok bool - ) - - if ierr, ok = err.(*imgproxyError); !ok { - ierr = newUnexpectedError(err.Error(), 3) - } + ierr := wrapError(err, 3) if ierr.Unexpected { reportError(err, r)