Do not setLastStateChangeToNow every 5 seconds
@@ -292,11 +292,13 @@ func (h *Headscale) expireEphemeralNodesWorker() {
return
}
+ expiredFound := false
for _, machine := range machines {
if machine.AuthKey != nil && machine.LastSeen != nil &&
machine.AuthKey.Ephemeral &&
time.Now().
After(machine.LastSeen.Add(h.cfg.EphemeralNodeInactivityTimeout)) {
+ expiredFound = true
log.Info().
Str("machine", machine.Name).
Msg("Ephemeral client removed from database")
@@ -311,9 +313,11 @@ func (h *Headscale) expireEphemeralNodesWorker() {
}
}
+ if expiredFound {
h.setLastStateChangeToNow(namespace.Name)
}
}
+}
func (h *Headscale) grpcAuthenticationInterceptor(ctx context.Context,
req interface{},
