aboutsummaryrefslogtreecommitdiff
path: root/roomserver
diff options
context:
space:
mode:
authorTill <2353100+S7evinK@users.noreply.github.com>2022-07-20 12:39:06 +0200
committerGitHub <noreply@github.com>2022-07-20 12:39:06 +0200
commit9507966ebdbe0615e8d27be4b7a1d4440ada3e73 (patch)
tree371661b5a1d57c4f8a1a078dc4babf4fd12eead5 /roomserver
parent84a779788360101a2353679cc2baa695fba7f9f2 (diff)
Fix issue with membership event_nid being 0 (#2580)
Diffstat (limited to 'roomserver')
-rw-r--r--roomserver/storage/shared/membership_updater.go9
1 files changed, 8 insertions, 1 deletions
diff --git a/roomserver/storage/shared/membership_updater.go b/roomserver/storage/shared/membership_updater.go
index ebfcef56..c79ca899 100644
--- a/roomserver/storage/shared/membership_updater.go
+++ b/roomserver/storage/shared/membership_updater.go
@@ -105,8 +105,15 @@ func (u *MembershipUpdater) SetToInvite(event *gomatrixserverlib.Event) (bool, e
if err != nil {
return fmt.Errorf("u.d.InvitesTable.InsertInviteEvent: %w", err)
}
+
+ // Look up the NID of the invite event
+ nIDs, err := u.d.eventNIDs(u.ctx, u.txn, []string{event.EventID()}, false)
+ if err != nil {
+ return fmt.Errorf("u.d.EventNIDs: %w", err)
+ }
+
if u.membership != tables.MembershipStateInvite {
- if inserted, err = u.d.MembershipTable.UpdateMembership(u.ctx, u.txn, u.roomNID, u.targetUserNID, senderUserNID, tables.MembershipStateInvite, 0, false); err != nil {
+ if inserted, err = u.d.MembershipTable.UpdateMembership(u.ctx, u.txn, u.roomNID, u.targetUserNID, senderUserNID, tables.MembershipStateInvite, nIDs[event.EventID()], false); err != nil {
return fmt.Errorf("u.d.MembershipTable.UpdateMembership: %w", err)
}
}