Browse Source
admin,templates,core: Minor enhancements and error handling (#3607)
* fix 2 possible bugs
* handle unhandled errors
master
Bart
5 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with
14 additions and
5 deletions
-
admin.go
-
caddy.go
-
modules/caddyhttp/reverseproxy/selectionpolicies.go
-
modules/caddyhttp/templates/tplcontext_test.go
|
|
@ -18,6 +18,7 @@ import ( |
|
|
|
"bytes" |
|
|
|
"context" |
|
|
|
"encoding/json" |
|
|
|
"errors" |
|
|
|
"expvar" |
|
|
|
"fmt" |
|
|
|
"io" |
|
|
@ -235,15 +236,20 @@ func replaceAdmin(cfg *Config) error { |
|
|
|
MaxHeaderBytes: 1024 * 64, |
|
|
|
} |
|
|
|
|
|
|
|
go adminServer.Serve(ln) |
|
|
|
adminLogger := Log().Named("admin") |
|
|
|
go func() { |
|
|
|
if err := adminServer.Serve(ln); !errors.Is(err, http.ErrServerClosed) { |
|
|
|
adminLogger.Error("admin server shutdown for unknown reason", zap.Error(err)) |
|
|
|
} |
|
|
|
}() |
|
|
|
|
|
|
|
Log().Named("admin").Info("admin endpoint started", |
|
|
|
adminLogger.Info("admin endpoint started", |
|
|
|
zap.String("address", addr.String()), |
|
|
|
zap.Bool("enforce_origin", adminConfig.EnforceOrigin), |
|
|
|
zap.Strings("origins", handler.allowedOrigins)) |
|
|
|
|
|
|
|
if !handler.enforceHost { |
|
|
|
Log().Named("admin").Warn("admin endpoint on open interface; host checking disabled", |
|
|
|
adminLogger.Warn("admin endpoint on open interface; host checking disabled", |
|
|
|
zap.String("address", addr.String())) |
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -471,7 +471,7 @@ func stopAndCleanup() error { |
|
|
|
} |
|
|
|
certmagic.CleanUpOwnLocks() |
|
|
|
if pidfile != "" { |
|
|
|
os.Remove(pidfile) |
|
|
|
return os.Remove(pidfile) |
|
|
|
} |
|
|
|
return nil |
|
|
|
} |
|
|
|
|
|
@ -401,6 +401,9 @@ func leastRequests(upstreams []*Upstream) *Upstream { |
|
|
|
best = append(best, upstream) |
|
|
|
} |
|
|
|
} |
|
|
|
if len(best) == 0 { |
|
|
|
return nil |
|
|
|
} |
|
|
|
return best[weakrand.Intn(len(best))] |
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -90,7 +90,7 @@ func TestCookie(t *testing.T) { |
|
|
|
}, |
|
|
|
{ |
|
|
|
// cookie with optional fields
|
|
|
|
cookie: &http.Cookie{Name: "cookie", Value: "cookieValue", Path: "/path", Domain: "https://localhost", Expires: (time.Now().Add(10 * time.Minute)), MaxAge: 120}, |
|
|
|
cookie: &http.Cookie{Name: "cookie", Value: "cookieValue", Path: "/path", Domain: "https://localhost", Expires: time.Now().Add(10 * time.Minute), MaxAge: 120}, |
|
|
|
cookieName: "cookie", |
|
|
|
expect: "cookieValue", |
|
|
|
}, |
|
|
|