mirror of
https://github.com/juanfont/headscale.git
synced 2025-12-23 16:46:13 +00:00
app: only wire up debug server if set
Fixes #2871 Signed-off-by: Kristoffer Dalby <kristoffer@dalby.cc>
This commit is contained in:
committed by
Kristoffer Dalby
parent
f0e464dc36
commit
56bec66a44
@@ -730,16 +730,27 @@ func (h *Headscale) Serve() error {
|
|||||||
log.Info().
|
log.Info().
|
||||||
Msgf("listening and serving HTTP on: %s", h.cfg.Addr)
|
Msgf("listening and serving HTTP on: %s", h.cfg.Addr)
|
||||||
|
|
||||||
debugHTTPListener, err := net.Listen("tcp", h.cfg.MetricsAddr)
|
// Only start debug/metrics server if address is configured
|
||||||
|
var debugHTTPServer *http.Server
|
||||||
|
|
||||||
|
var debugHTTPListener net.Listener
|
||||||
|
|
||||||
|
if h.cfg.MetricsAddr != "" {
|
||||||
|
debugHTTPListener, err = (&net.ListenConfig{}).Listen(ctx, "tcp", h.cfg.MetricsAddr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("failed to bind to TCP address: %w", err)
|
return fmt.Errorf("failed to bind to TCP address: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
debugHTTPServer := h.debugHTTPServer()
|
debugHTTPServer = h.debugHTTPServer()
|
||||||
|
|
||||||
errorGroup.Go(func() error { return debugHTTPServer.Serve(debugHTTPListener) })
|
errorGroup.Go(func() error { return debugHTTPServer.Serve(debugHTTPListener) })
|
||||||
|
|
||||||
log.Info().
|
log.Info().
|
||||||
Msgf("listening and serving debug and metrics on: %s", h.cfg.MetricsAddr)
|
Msgf("listening and serving debug and metrics on: %s", h.cfg.MetricsAddr)
|
||||||
|
} else {
|
||||||
|
log.Info().Msg("metrics server disabled (metrics_listen_addr is empty)")
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
var tailsqlContext context.Context
|
var tailsqlContext context.Context
|
||||||
if tailsqlEnabled {
|
if tailsqlEnabled {
|
||||||
@@ -795,16 +806,25 @@ func (h *Headscale) Serve() error {
|
|||||||
h.ephemeralGC.Close()
|
h.ephemeralGC.Close()
|
||||||
|
|
||||||
// Gracefully shut down servers
|
// Gracefully shut down servers
|
||||||
ctx, cancel := context.WithTimeout(
|
shutdownCtx, cancel := context.WithTimeout(
|
||||||
context.Background(),
|
context.WithoutCancel(ctx),
|
||||||
types.HTTPShutdownTimeout,
|
types.HTTPShutdownTimeout,
|
||||||
)
|
)
|
||||||
|
defer cancel()
|
||||||
|
|
||||||
|
if debugHTTPServer != nil {
|
||||||
info("shutting down debug http server")
|
info("shutting down debug http server")
|
||||||
if err := debugHTTPServer.Shutdown(ctx); err != nil {
|
|
||||||
|
err := debugHTTPServer.Shutdown(shutdownCtx)
|
||||||
|
if err != nil {
|
||||||
log.Error().Err(err).Msg("failed to shutdown prometheus http")
|
log.Error().Err(err).Msg("failed to shutdown prometheus http")
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
info("shutting down main http server")
|
info("shutting down main http server")
|
||||||
if err := httpServer.Shutdown(ctx); err != nil {
|
|
||||||
|
err := httpServer.Shutdown(shutdownCtx)
|
||||||
|
if err != nil {
|
||||||
log.Error().Err(err).Msg("failed to shutdown http")
|
log.Error().Err(err).Msg("failed to shutdown http")
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -830,7 +850,10 @@ func (h *Headscale) Serve() error {
|
|||||||
|
|
||||||
// Close network listeners
|
// Close network listeners
|
||||||
info("closing network listeners")
|
info("closing network listeners")
|
||||||
|
|
||||||
|
if debugHTTPListener != nil {
|
||||||
debugHTTPListener.Close()
|
debugHTTPListener.Close()
|
||||||
|
}
|
||||||
httpListener.Close()
|
httpListener.Close()
|
||||||
grpcGatewayConn.Close()
|
grpcGatewayConn.Close()
|
||||||
|
|
||||||
@@ -848,9 +871,6 @@ func (h *Headscale) Serve() error {
|
|||||||
log.Info().
|
log.Info().
|
||||||
Msg("Headscale stopped")
|
Msg("Headscale stopped")
|
||||||
|
|
||||||
// And we're done:
|
|
||||||
cancel()
|
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user