From d2f964064ad34e4692d74977a12468d71bd42741 Mon Sep 17 00:00:00 2001 From: Neil Alexander Date: Thu, 22 Jul 2021 12:08:46 +0100 Subject: [PATCH] Get the NID of the knock event properly for the membership updater --- roomserver/storage/shared/membership_updater.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/roomserver/storage/shared/membership_updater.go b/roomserver/storage/shared/membership_updater.go index 29232c9d6..f1f589a31 100644 --- a/roomserver/storage/shared/membership_updater.go +++ b/roomserver/storage/shared/membership_updater.go @@ -195,7 +195,13 @@ func (u *MembershipUpdater) SetToKnock(event *gomatrixserverlib.Event) (bool, er return fmt.Errorf("u.d.AssignStateKeyNID: %w", err) } if u.membership != tables.MembershipStateKnock { - if err = u.d.MembershipTable.UpdateMembership(u.ctx, u.txn, u.roomNID, u.targetUserNID, senderUserNID, tables.MembershipStateKnock, 0, false); err != nil { + // Look up the NID of the new knock event + nIDs, err := u.d.EventNIDs(u.ctx, []string{event.EventID()}) + if err != nil { + return fmt.Errorf("u.d.EventNIDs: %w", err) + } + + if err = u.d.MembershipTable.UpdateMembership(u.ctx, u.txn, u.roomNID, u.targetUserNID, senderUserNID, tables.MembershipStateKnock, nIDs[event.EventID()], false); err != nil { return fmt.Errorf("u.d.MembershipTable.UpdateMembership: %w", err) } }