Logging middleware fixes

Signed-off-by: Vishal Rana <vr@labstack.com>
This commit is contained in:
Vishal Rana
2016-03-21 17:27:14 -07:00
parent 703174e58f
commit a66162a3d2
16 changed files with 153 additions and 155 deletions
+2 -2
View File
@@ -158,6 +158,6 @@ type (
)
// ServeHTTP serves HTTP request.
func (h HandlerFunc) ServeHTTP(req Request, res Response) {
h(req, res)
func (h HandlerFunc) ServeHTTP(rq Request, rs Response) {
h(rq, rs)
}
+8 -8
View File
@@ -78,7 +78,7 @@ func NewFromConfig(c engine.Config) (s *Server) {
},
},
},
handler: engine.HandlerFunc(func(req engine.Request, res engine.Response) {
handler: engine.HandlerFunc(func(rq engine.Request, rs engine.Response) {
s.logger.Error("handler not set, use `SetHandler()` to set it.")
}),
logger: log.New("echo"),
@@ -124,25 +124,25 @@ func (s *Server) startCustomListener() error {
func (s *Server) ServeHTTP(c *fasthttp.RequestCtx) {
// Request
req := s.pool.request.Get().(*Request)
rq := s.pool.request.Get().(*Request)
reqHdr := s.pool.requestHeader.Get().(*RequestHeader)
reqURL := s.pool.url.Get().(*URL)
reqHdr.reset(&c.Request.Header)
reqURL.reset(c.URI())
req.reset(c, reqHdr, reqURL)
rq.reset(c, reqHdr, reqURL)
// Response
res := s.pool.response.Get().(*Response)
rs := s.pool.response.Get().(*Response)
resHdr := s.pool.responseHeader.Get().(*ResponseHeader)
resHdr.reset(&c.Response.Header)
res.reset(c, resHdr)
rs.reset(c, resHdr)
s.handler.ServeHTTP(req, res)
s.handler.ServeHTTP(rq, rs)
s.pool.request.Put(req)
s.pool.request.Put(rq)
s.pool.requestHeader.Put(reqHdr)
s.pool.url.Put(reqURL)
s.pool.response.Put(res)
s.pool.response.Put(rs)
s.pool.responseHeader.Put(resHdr)
}
+2 -2
View File
@@ -104,8 +104,8 @@ func (r *Request) MultipartForm() (*multipart.Form, error) {
return r.Request.MultipartForm, err
}
func (r *Request) reset(req *http.Request, h engine.Header, u engine.URL) {
r.Request = req
func (r *Request) reset(rq *http.Request, h engine.Header, u engine.URL) {
r.Request = rq
r.header = h
r.url = u
}
+14 -14
View File
@@ -70,7 +70,7 @@ func NewFromConfig(c engine.Config) (s *Server) {
},
},
},
handler: engine.HandlerFunc(func(req engine.Request, res engine.Response) {
handler: engine.HandlerFunc(func(rq engine.Request, rs engine.Response) {
s.logger.Error("handler not set, use `SetHandler()` to set it.")
}),
logger: log.New("echo"),
@@ -113,25 +113,25 @@ func (s *Server) startCustomListener() error {
// ServeHTTP implements `http.Handler` interface.
func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
// Request
req := s.pool.request.Get().(*Request)
rq := s.pool.request.Get().(*Request)
reqHdr := s.pool.header.Get().(*Header)
reqURL := s.pool.url.Get().(*URL)
reqHdr.reset(r.Header)
reqURL.reset(r.URL)
req.reset(r, reqHdr, reqURL)
rq.reset(r, reqHdr, reqURL)
// Response
res := s.pool.response.Get().(*Response)
rs := s.pool.response.Get().(*Response)
resHdr := s.pool.header.Get().(*Header)
resHdr.reset(w.Header())
res.reset(w, resHdr)
rs.reset(w, resHdr)
s.handler.ServeHTTP(req, res)
s.handler.ServeHTTP(rq, rs)
s.pool.request.Put(req)
s.pool.request.Put(rq)
s.pool.header.Put(reqHdr)
s.pool.url.Put(reqURL)
s.pool.response.Put(res)
s.pool.response.Put(rs)
s.pool.header.Put(resHdr)
}
@@ -152,16 +152,16 @@ func WrapHandler(h http.Handler) echo.HandlerFunc {
func WrapMiddleware(m func(http.Handler) http.Handler) echo.MiddlewareFunc {
return func(next echo.Handler) echo.Handler {
return echo.HandlerFunc(func(c echo.Context) (err error) {
req := c.Request().(*Request)
res := c.Response().(*Response)
rq := c.Request().(*Request)
rs := c.Response().(*Response)
m(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
res.ResponseWriter = &responseAdapter{
ResponseWriter: res.ResponseWriter,
rs.ResponseWriter = &responseAdapter{
ResponseWriter: rs.ResponseWriter,
writer: c.Response(),
}
req.Request = r
rq.Request = r
err = next.Handle(c)
})).ServeHTTP(res.ResponseWriter, req.Request)
})).ServeHTTP(rs.ResponseWriter, rq.Request)
return
})
}