summaryrefslogtreecommitdiff
path: root/admin.go
diff options
context:
space:
mode:
authorMatt Holt <mholt@users.noreply.github.com>2022-09-28 13:35:51 -0600
committerGitHub <noreply@github.com>2022-09-28 13:35:51 -0600
commite3e8aabbcf65d37516bb97f9dc0f77df52f8cf55 (patch)
treea7f50b045ab2b526d0f1dc83f9a8adbd502f5d14 /admin.go
parentd0556929a4a574ea67be4c1ca2a2741b0f7a52c2 (diff)
core: Refactor and improve listener logic (#5089)
* core: Refactor, improve listener logic Deprecate: - caddy.Listen - caddy.ListenTimeout - caddy.ListenPacket Prefer caddy.NetworkAddress.Listen() instead. Change: - caddy.ListenQUIC (hopefully to remove later) - caddy.ListenerFunc signature (add context and ListenConfig) - Don't emit Alt-Svc header advertising h3 over HTTP/3 - Use quic.ListenEarly instead of quic.ListenEarlyAddr; this gives us more flexibility (e.g. possibility of HTTP/3 over UDS) but also introduces a new issue: https://github.com/lucas-clemente/quic-go/issues/3560#issuecomment-1258959608 - Unlink unix socket before and after use * Appease the linter * Keep ListenAll
Diffstat (limited to 'admin.go')
-rw-r--r--admin.go7
1 files changed, 4 insertions, 3 deletions
diff --git a/admin.go b/admin.go
index 36cc2f8..a23a1ac 100644
--- a/admin.go
+++ b/admin.go
@@ -382,7 +382,7 @@ func replaceLocalAdminServer(cfg *Config) error {
handler := cfg.Admin.newAdminHandler(addr, false)
- ln, err := Listen(addr.Network, addr.JoinHostPort(0))
+ ln, err := addr.Listen(context.TODO(), 0, net.ListenConfig{})
if err != nil {
return err
}
@@ -403,7 +403,7 @@ func replaceLocalAdminServer(cfg *Config) error {
serverMu.Lock()
server := localAdminServer
serverMu.Unlock()
- if err := server.Serve(ln); !errors.Is(err, http.ErrServerClosed) {
+ if err := server.Serve(ln.(net.Listener)); !errors.Is(err, http.ErrServerClosed) {
adminLogger.Error("admin server shutdown for unknown reason", zap.Error(err))
}
}()
@@ -549,10 +549,11 @@ func replaceRemoteAdminServer(ctx Context, cfg *Config) error {
serverMu.Unlock()
// start listener
- ln, err := Listen(addr.Network, addr.JoinHostPort(0))
+ lnAny, err := addr.Listen(ctx, 0, net.ListenConfig{})
if err != nil {
return err
}
+ ln := lnAny.(net.Listener)
ln = tls.NewListener(ln, tlsConfig)
go func() {