mirror of
https://github.com/labstack/echo.git
synced 2025-04-15 11:56:51 +02:00
parent
4f996419e1
commit
2ad06ce67e
6
echo.go
6
echo.go
@ -162,9 +162,9 @@ var (
|
|||||||
// Errors
|
// Errors
|
||||||
//--------
|
//--------
|
||||||
|
|
||||||
UnsupportedMediaType = errors.New("echo ⇒ unsupported media type")
|
UnsupportedMediaType = errors.New("unsupported media type")
|
||||||
RendererNotRegistered = errors.New("echo ⇒ renderer not registered")
|
RendererNotRegistered = errors.New("renderer not registered")
|
||||||
InvalidRedirectCode = errors.New("echo ⇒ invalid redirect status code")
|
InvalidRedirectCode = errors.New("invalid redirect status code")
|
||||||
|
|
||||||
//----------------
|
//----------------
|
||||||
// Error handlers
|
// Error handlers
|
||||||
|
16
router.go
16
router.go
@ -266,6 +266,15 @@ func (n *node) findHandler(method string) HandlerFunc {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (n *node) check405() HandlerFunc {
|
||||||
|
for _, m := range methods {
|
||||||
|
if h := n.findHandler(m); h != nil {
|
||||||
|
return methodNotAllowedHandler
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return notFoundHandler
|
||||||
|
}
|
||||||
|
|
||||||
func (r *Router) Find(method, path string, ctx *Context) (h HandlerFunc, e *Echo) {
|
func (r *Router) Find(method, path string, ctx *Context) (h HandlerFunc, e *Echo) {
|
||||||
h = notFoundHandler
|
h = notFoundHandler
|
||||||
e = r.echo
|
e = r.echo
|
||||||
@ -373,8 +382,11 @@ End:
|
|||||||
if cn.echo != nil {
|
if cn.echo != nil {
|
||||||
e = cn.echo
|
e = cn.echo
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// NOTE: Slow zone...
|
||||||
if h == nil {
|
if h == nil {
|
||||||
h = methodNotAllowedHandler
|
h = cn.check405()
|
||||||
|
|
||||||
// Dig further for match-any, might have an empty value for *, e.g.
|
// Dig further for match-any, might have an empty value for *, e.g.
|
||||||
// serving a directory. Issue #207.
|
// serving a directory. Issue #207.
|
||||||
if cn = cn.findChildByKind(mkind); cn == nil {
|
if cn = cn.findChildByKind(mkind); cn == nil {
|
||||||
@ -382,7 +394,7 @@ End:
|
|||||||
}
|
}
|
||||||
ctx.pvalues[len(cn.pnames)-1] = ""
|
ctx.pvalues[len(cn.pnames)-1] = ""
|
||||||
if h = cn.findHandler(method); h == nil {
|
if h = cn.findHandler(method); h == nil {
|
||||||
h = methodNotAllowedHandler
|
h = cn.check405()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
|
Loading…
x
Reference in New Issue
Block a user