From fea083b3e1a6db2c682a31b5812541574c8635ee Mon Sep 17 00:00:00 2001 From: jjj333_p Date: Mon, 5 Feb 2024 17:56:16 -1000 Subject: [PATCH] add offline timeout --- syncapi/sync/requestpool.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/syncapi/sync/requestpool.go b/syncapi/sync/requestpool.go index b8c2b6f87..55db56424 100644 --- a/syncapi/sync/requestpool.go +++ b/syncapi/sync/requestpool.go @@ -174,6 +174,9 @@ func (rp *RequestPool) updatePresence(db storage.Presence, presence string, user } else if (workingTime - lastPresence[userID][int(types.PresenceOffline)]) < presenceTimeout { presenceToSet = types.PresenceOffline + //after a timeout, check presence again to make sure it gets set as offline sooner or later + time.AfterFunc(time.Second*time.Duration(presenceTimeout), func() { rp.updatePresence(db, types.PresenceOffline.String(), userID) }) + //set unknown if there is truly no devices that we know the state of } else { presenceToSet = types.PresenceUnknown