diff options
Diffstat (limited to 'modules/web/route.go')
-rw-r--r-- | modules/web/route.go | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/modules/web/route.go b/modules/web/route.go index 1d9c92bd7a..19193773d5 100644 --- a/modules/web/route.go +++ b/modules/web/route.go @@ -30,6 +30,7 @@ func Wrap(handlers ...interface{}) http.HandlerFunc { func(ctx *context.Context), func(ctx *context.Context) goctx.CancelFunc, func(*context.APIContext), + func(*context.APIContext) goctx.CancelFunc, func(*context.PrivateContext), func(*context.PrivateContext) goctx.CancelFunc, func(http.Handler) http.Handler: @@ -60,6 +61,15 @@ func Wrap(handlers ...interface{}) http.HandlerFunc { if ctx.Written() { return } + case func(*context.APIContext) goctx.CancelFunc: + ctx := context.GetAPIContext(req) + cancel := t(ctx) + if cancel != nil { + defer cancel() + } + if ctx.Written() { + return + } case func(*context.PrivateContext) goctx.CancelFunc: ctx := context.GetPrivateContext(req) cancel := t(ctx) |