diff --git a/cmix/identity/tracker.go b/cmix/identity/tracker.go index e62b4067c8f54920aaae938721a59704ae8a2e43..394e9ac31f253328f1bd257275fcb5a5f78ee77d 100644 --- a/cmix/identity/tracker.go +++ b/cmix/identity/tracker.go @@ -240,7 +240,9 @@ func (t *manager) track(stop *stoppable.Single) { func (t *manager) processIdentities(addressSize uint8) time.Time { edits := false toRemove := make(map[int]struct{}) - nextEvent := t.tracked[0].ValidUntil + // Identities are rotated on a 24-hour time period. Set the event + // to the latest possible time so that any sooner times will overwrite this + nextEvent := netTime.Now().Add(time.Duration(ephemeral.Period)) // Loop through every tracked ID and see if any operations are needed for i, inQuestion := range t.tracked { @@ -263,13 +265,15 @@ func (t *manager) processIdentities(addressSize uint8) time.Time { if inQuestion.NextGeneration.Before(nextEvent) { nextEvent = inQuestion.NextGeneration } - if inQuestion.ValidUntil != Forever && inQuestion.ValidUntil.Before(nextEvent) { + if !inQuestion.ValidUntil.IsZero() && inQuestion.ValidUntil.Before(nextEvent) { nextEvent = inQuestion.ValidUntil } } } + jww.INFO.Printf("[TrackedIDS] NextEvent: %s", nextEvent) + // Process any deletions if len(toRemove) > 0 { newTracked := make([]TrackedID, 0, len(t.tracked))