From a506d0fcc8cce11720ef5b1c52864e8f574e1636 Mon Sep 17 00:00:00 2001 From: Juan Font Date: Fri, 25 Nov 2022 15:11:22 +0000 Subject: [PATCH] Run handlePrimarySubnetFailover() with a ticker when Serve --- app.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/app.go b/app.go index aec8d68..6274d8f 100644 --- a/app.go +++ b/app.go @@ -219,6 +219,16 @@ func (h *Headscale) expireEphemeralNodes(milliSeconds int64) { } } +func (h *Headscale) failoverSubnetRoutes(milliSeconds int64) { + ticker := time.NewTicker(time.Duration(milliSeconds) * time.Millisecond) + for range ticker.C { + err := h.handlePrimarySubnetFailover() + if err != nil { + log.Error().Err(err).Msg("failed to handle primary subnet failover") + } + } +} + func (h *Headscale) expireEphemeralNodesWorker() { namespaces, err := h.ListNamespaces() if err != nil { @@ -497,6 +507,8 @@ func (h *Headscale) Serve() error { go h.expireEphemeralNodes(updateInterval) + go h.failoverSubnetRoutes(updateInterval) + if zl.GlobalLevel() == zl.TraceLevel { zerolog.RespLog = true } else {