mirror of
https://github.com/yusing/godoxy.git
synced 2025-05-20 12:42:34 +02:00
entrypoint middleware mutex
This commit is contained in:
parent
1c1ba1b55e
commit
796a4a693a
1 changed files with 15 additions and 2 deletions
|
@ -32,11 +32,18 @@ func SetMiddlewares(mws []map[string]any) error {
|
||||||
epMiddlewareMu.Lock()
|
epMiddlewareMu.Lock()
|
||||||
defer epMiddlewareMu.Unlock()
|
defer epMiddlewareMu.Unlock()
|
||||||
|
|
||||||
|
if len(mws) == 0 {
|
||||||
|
epMiddleware = nil
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
mid, err := middleware.BuildMiddlewareFromChainRaw("entrypoint", mws)
|
mid, err := middleware.BuildMiddlewareFromChainRaw("entrypoint", mws)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
epMiddleware = mid
|
epMiddleware = mid
|
||||||
|
|
||||||
|
logger.Debug().Msg("entrypoint middleware loaded")
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -44,8 +51,14 @@ func Handler(w http.ResponseWriter, r *http.Request) {
|
||||||
mux, err := findRouteFunc(r.Host)
|
mux, err := findRouteFunc(r.Host)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
if epMiddleware != nil {
|
if epMiddleware != nil {
|
||||||
epMiddleware.ServeHTTP(mux.ServeHTTP, w, r)
|
epMiddlewareMu.Lock()
|
||||||
return
|
if epMiddleware != nil {
|
||||||
|
mid := epMiddleware
|
||||||
|
epMiddlewareMu.Unlock()
|
||||||
|
mid.ServeHTTP(mux.ServeHTTP, w, r)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
epMiddlewareMu.Unlock()
|
||||||
}
|
}
|
||||||
mux.ServeHTTP(w, r)
|
mux.ServeHTTP(w, r)
|
||||||
return
|
return
|
||||||
|
|
Loading…
Add table
Reference in a new issue