Sort the events and skip if eventID is equal beforeID

This commit is contained in:
Till Faelligen 2023-03-07 11:25:03 +01:00
parent 26375dd56a
commit 638300efd0
No known key found for this signature in database
GPG key ID: ACCDC9606D472758

View file

@ -12,6 +12,7 @@ import (
"math/rand"
"os"
"regexp"
"sort"
"time"
"github.com/matrix-org/gomatrixserverlib"
@ -112,6 +113,7 @@ func main() {
continue
}
var createSeen bool
sort.Sort(headeredEvents(evs))
for _, x := range evs {
if _, ok := seenEvents[x.EventID()]; ok {
continue
@ -147,6 +149,9 @@ func main() {
if _, ok := seenEvents[x.EventID()]; ok {
continue
}
if x.EventID() == beforeEvID {
continue
}
eventID = x.EventID()
break
}
@ -162,6 +167,20 @@ func main() {
}
}
type headeredEvents []*gomatrixserverlib.HeaderedEvent
func (h headeredEvents) Len() int {
return len(h)
}
func (h headeredEvents) Less(i, j int) bool {
return h[i].Depth() < h[j].Depth()
}
func (h headeredEvents) Swap(i, j int) {
h[i], h[j] = h[j], h[i]
}
type backfiller struct {
FedClient *gomatrixserverlib.FederationClient
servers map[gomatrixserverlib.ServerName]struct{}