diff --git a/federationapi/routing/invite.go b/federationapi/routing/invite.go index 48527aa45..9ca253576 100644 --- a/federationapi/routing/invite.go +++ b/federationapi/routing/invite.go @@ -41,7 +41,7 @@ func Invite( var intermediate struct { Event json.RawMessage `json:"event"` - InviteRoomState []json.RawMessage `json:"invite_stripped_state"` + InviteRoomState []json.RawMessage `json:"invite_room_state"` RoomVersion gomatrixserverlib.RoomVersion `json:"room_version"` } diff --git a/roomserver/api/input.go b/roomserver/api/input.go index 49cf43596..87e3983e3 100644 --- a/roomserver/api/input.go +++ b/roomserver/api/input.go @@ -88,7 +88,7 @@ type TransactionID struct { type InputInviteEvent struct { RoomVersion gomatrixserverlib.RoomVersion `json:"room_version"` Event gomatrixserverlib.HeaderedEvent `json:"event"` - InviteRoomState []gomatrixserverlib.InviteV2StrippedState `json:"invite_stripped_state"` + InviteRoomState []gomatrixserverlib.InviteV2StrippedState `json:"invite_room_state"` } // InputRoomEventsRequest is a request to InputRoomEvents diff --git a/roomserver/input/events.go b/roomserver/input/events.go index 80a959de1..281d741fe 100644 --- a/roomserver/input/events.go +++ b/roomserver/input/events.go @@ -248,13 +248,12 @@ func processInviteEvent( } event := input.Event.Unwrap() + inviteStrippedState := []gomatrixserverlib.InviteV2StrippedState{} if len(input.InviteRoomState) > 0 { // If we were supplied with some invite room state then let's use that. // This will ordinarily happen over federation. - if err = event.SetUnsignedField("invite_room_state", input.InviteRoomState); err != nil { - return err - } + inviteStrippedState = input.InviteRoomState } else { // Otherwise, we should see if we know anything about the room state // locally. If we have local knowledge of the room, use the locally known @@ -289,16 +288,16 @@ func processInviteEvent( if err != nil { return err } - strippedState := []gomatrixserverlib.InviteV2StrippedState{} for _, event := range stateEvents { - strippedState = append(strippedState, gomatrixserverlib.NewInviteV2StrippedState(&event.Event)) - } - if err = event.SetUnsignedField("invite_room_state", strippedState); err != nil { - return err + inviteStrippedState = append(inviteStrippedState, gomatrixserverlib.NewInviteV2StrippedState(&event.Event)) } } } + if err = event.SetUnsignedField("invite_room_state", inviteStrippedState); err != nil { + return err + } + outputUpdates, err := updateToInviteMembership(updater, &event, nil, input.Event.RoomVersion) if err != nil { return err