From 2ae8a25fc93067526eaa8d6cdf2b9a276a044986 Mon Sep 17 00:00:00 2001 From: Franz Bettag Date: Fri, 10 Feb 2017 15:44:55 +0100 Subject: [PATCH] Added HandleContext to re-enter soft-rewritten Requests. (#709) --- gin.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/gin.go b/gin.go index d084f2a3..12054090 100644 --- a/gin.go +++ b/gin.go @@ -273,6 +273,15 @@ func (engine *Engine) ServeHTTP(w http.ResponseWriter, req *http.Request) { engine.pool.Put(c) } +// Re-enter a context that has been rewritten. +// This can be done by setting c.Request.Path to your new target. +// Disclaimer: You can loop yourself to death with this, use wisely. +func (engine *Engine) HandleContext(c *Context) { + c.reset() + engine.handleHTTPRequest(c) + engine.pool.Put(c) +} + func (engine *Engine) handleHTTPRequest(context *Context) { httpMethod := context.Request.Method path := context.Request.URL.Path