From 86e387d19d42ad60c186c095683ca2470d70afbb Mon Sep 17 00:00:00 2001 From: Till Faelligen Date: Mon, 9 Aug 2021 16:58:03 +0200 Subject: [PATCH] Fix issue with wrong timestamp --- userapi/internal/api.go | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/userapi/internal/api.go b/userapi/internal/api.go index 06d4ec383..8a1c7225d 100644 --- a/userapi/internal/api.go +++ b/userapi/internal/api.go @@ -460,7 +460,7 @@ func (a *UserInternalAPI) QueryPresenceForUser(ctx context.Context, req *api.Que if err != nil { return err } - var maxLastSeen int64 + var maxLastSeenTS int64 // If it's a local user, we can check the devices for possible updated timestamps if domain == a.ServerName { var devs []api.Device @@ -469,8 +469,8 @@ func (a *UserInternalAPI) QueryPresenceForUser(ctx context.Context, req *api.Que return err } for _, dev := range devs { - if dev.LastSeenTS > maxLastSeen { - maxLastSeen = dev.LastSeenTS + if dev.LastSeenTS > maxLastSeenTS { + maxLastSeenTS = dev.LastSeenTS } } } @@ -483,8 +483,10 @@ func (a *UserInternalAPI) QueryPresenceForUser(ctx context.Context, req *api.Que res.PresenceStatus = p.Presence res.StatusMsg = p.StatusMsg res.LastActiveTS = p.LastActiveTS - if maxLastSeen > p.LastActiveTS.Time().Unix() { - res.LastActiveTS = gomatrixserverlib.Timestamp(maxLastSeen) + + maxLastSeen := gomatrixserverlib.Timestamp(maxLastSeenTS) + if maxLastSeen.Time().After(p.LastActiveTS.Time()) { + res.LastActiveTS = maxLastSeen } return nil }