From 9a9275559c283a2b7da1870d8d9e1f5537ee8c13 Mon Sep 17 00:00:00 2001 From: Brendan Abolivier Date: Wed, 23 Aug 2017 12:19:56 +0100 Subject: [PATCH] Filter by membership event --- .../dendrite/roomserver/storage/storage.go | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/github.com/matrix-org/dendrite/roomserver/storage/storage.go b/src/github.com/matrix-org/dendrite/roomserver/storage/storage.go index b8c0c051c..1e696c36a 100644 --- a/src/github.com/matrix-org/dendrite/roomserver/storage/storage.go +++ b/src/github.com/matrix-org/dendrite/roomserver/storage/storage.go @@ -574,7 +574,9 @@ func (d *Database) getMembershipsBeforeEventNID(eventNID types.EventNID) ([]type var eventNIDs []types.EventNID for _, entry := range stateEntries { - eventNIDs = append(eventNIDs, entry.EventNID) + if entry.EventStateKeyNID == types.MRoomMemberNID { + eventNIDs = append(eventNIDs, entry.EventNID) + } } // Get all of the events in this state @@ -585,15 +587,13 @@ func (d *Database) getMembershipsBeforeEventNID(eventNID types.EventNID) ([]type // Filter the events to only keep the "join" membership events for _, event := range stateEvents { - if event.Type() == "m.room.member" { - membership, err := event.Membership() - if err != nil { - return nil, err - } + membership, err := event.Membership() + if err != nil { + return nil, err + } - if membership == "join" { - events = append(events, event) - } + if membership == "join" { + events = append(events, event) } }