From 843e2bd9b63872d18ff0cfbe6e121aeb1a4d3076 Mon Sep 17 00:00:00 2001
From: Juan Font <juanfontalonso@gmail.com>
Date: Sat, 30 Apr 2022 14:47:16 +0000
Subject: [PATCH] Do not setLastStateChangeToNow every 5 seconds

---
 app.go | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/app.go b/app.go
index b87fb33c..8a434363 100644
--- a/app.go
+++ b/app.go
@@ -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,7 +313,9 @@ func (h *Headscale) expireEphemeralNodesWorker() {
 			}
 		}
 
-		h.setLastStateChangeToNow(namespace.Name)
+		if expiredFound {
+			h.setLastStateChangeToNow(namespace.Name)
+		}
 	}
 }