Skip to content
Snippets Groups Projects
Commit e259a727 authored by Josh Brooks's avatar Josh Brooks
Browse files

Fix spamming ignoring identity print

parent 6b713cc0
No related branches found
No related tags found
2 merge requests!510Release,!207WIP: Client Restructure
...@@ -180,16 +180,19 @@ func (t *manager) track(stop *stoppable.Single) { ...@@ -180,16 +180,19 @@ func (t *manager) track(stop *stoppable.Single) {
for { for {
// Process new and old identities // Process new and old identities
nextEvent := t.processIdentities(addressSize) nextEvent := t.processIdentities(addressSize)
waitPeriod := nextEvent.Sub(netTime.Now())
// Trigger events early. This will cause generations to happen early as
// well as message pickup. As a result, if there are time sync issues if waitPeriod > validityGracePeriod {
// between clients, and they begin sending to ephemeral IDs early, then // Trigger events early. This will cause generations to happen early as
// messages will still be picked up. // well as message pickup. As a result, if there are time sync issues
nextUpdate := nextEvent.Add(-validityGracePeriod) // between clients, and they begin sending to ephemeral IDs early, then
// messages will still be picked up.
waitPeriod = waitPeriod - validityGracePeriod
}
// Sleep until the last ID has expired // Sleep until the last ID has expired
select { select {
case <-time.After(nextUpdate.Sub(nextUpdate)): case <-time.After(waitPeriod):
case newIdentity := <-t.newIdentity: case newIdentity := <-t.newIdentity:
jww.DEBUG.Printf("Receiving new identity %s :%+v", jww.DEBUG.Printf("Receiving new identity %s :%+v",
newIdentity.Source, newIdentity) newIdentity.Source, newIdentity)
...@@ -240,7 +243,9 @@ func (t *manager) track(stop *stoppable.Single) { ...@@ -240,7 +243,9 @@ func (t *manager) track(stop *stoppable.Single) {
func (t *manager) processIdentities(addressSize uint8) time.Time { func (t *manager) processIdentities(addressSize uint8) time.Time {
edits := false edits := false
toRemove := make(map[int]struct{}) 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 // Loop through every tracked ID and see if any operations are needed
for i, inQuestion := range t.tracked { for i, inQuestion := range t.tracked {
...@@ -263,13 +268,15 @@ func (t *manager) processIdentities(addressSize uint8) time.Time { ...@@ -263,13 +268,15 @@ func (t *manager) processIdentities(addressSize uint8) time.Time {
if inQuestion.NextGeneration.Before(nextEvent) { if inQuestion.NextGeneration.Before(nextEvent) {
nextEvent = inQuestion.NextGeneration nextEvent = inQuestion.NextGeneration
} }
if inQuestion.ValidUntil.Before(nextEvent) { if !inQuestion.ValidUntil.IsZero() && inQuestion.ValidUntil.Before(nextEvent) {
nextEvent = inQuestion.ValidUntil nextEvent = inQuestion.ValidUntil
} }
} }
} }
jww.DEBUG.Printf("[TrackedIDS] NextEvent: %s", nextEvent)
// Process any deletions // Process any deletions
if len(toRemove) > 0 { if len(toRemove) > 0 {
newTracked := make([]TrackedID, 0, len(t.tracked)) newTracked := make([]TrackedID, 0, len(t.tracked))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment