|
|
|
|
@ -59,6 +59,12 @@ func (r *Router) Match(req *http.Request, match *RouteMatch) bool {
@@ -59,6 +59,12 @@ func (r *Router) Match(req *http.Request, match *RouteMatch) bool {
|
|
|
|
|
return true |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Closest match for a router (includes sub-routers)
|
|
|
|
|
if r.NotFoundHandler != nil { |
|
|
|
|
match.Handler = r.NotFoundHandler |
|
|
|
|
return true |
|
|
|
|
} |
|
|
|
|
return false |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -89,10 +95,7 @@ func (r *Router) ServeHTTP(w http.ResponseWriter, req *http.Request) {
@@ -89,10 +95,7 @@ func (r *Router) ServeHTTP(w http.ResponseWriter, req *http.Request) {
|
|
|
|
|
setCurrentRoute(req, match.Route) |
|
|
|
|
} |
|
|
|
|
if handler == nil { |
|
|
|
|
handler = r.NotFoundHandler |
|
|
|
|
if handler == nil { |
|
|
|
|
handler = http.NotFoundHandler() |
|
|
|
|
} |
|
|
|
|
handler = http.NotFoundHandler() |
|
|
|
|
} |
|
|
|
|
if !r.KeepContext { |
|
|
|
|
defer context.Clear(req) |
|
|
|
|
@ -324,11 +327,15 @@ func CurrentRoute(r *http.Request) *Route {
@@ -324,11 +327,15 @@ func CurrentRoute(r *http.Request) *Route {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func setVars(r *http.Request, val interface{}) { |
|
|
|
|
context.Set(r, varsKey, val) |
|
|
|
|
if val != nil { |
|
|
|
|
context.Set(r, varsKey, val) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func setCurrentRoute(r *http.Request, val interface{}) { |
|
|
|
|
context.Set(r, routeKey, val) |
|
|
|
|
if val != nil { |
|
|
|
|
context.Set(r, routeKey, val) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// ----------------------------------------------------------------------------
|
|
|
|
|
|