Synchronous input room events

This commit is contained in:
Neil Alexander 2020-08-17 15:07:48 +01:00
parent a106424095
commit 86b5ac35fb
No known key found for this signature in database
GPG key ID: A02A2019A2BB0944

View file

@ -105,7 +105,7 @@ func (r *RoomserverInternalAPI) PerformInvite(
if isOriginLocal { if isOriginLocal {
// check that the user is allowed to do this. We can only do this check if it is // check that the user is allowed to do this. We can only do this check if it is
// a local invite as we have the auth events, else we have to take it on trust. // a local invite as we have the auth events, else we have to take it on trust.
_, err = checkAuthEvents(ctx, r.DB, req.Event, req.Event.AuthEventIDs()) _, err = checkAuthEvents(ctx, r.DB, event, event.AuthEventIDs())
if err != nil { if err != nil {
log.WithError(err).WithField("event_id", event.EventID()).WithField("auth_event_ids", event.AuthEventIDs()).Error( log.WithError(err).WithField("event_id", event.EventID()).WithField("auth_event_ids", event.AuthEventIDs()).Error(
"processInviteEvent.checkAuthEvents failed for event", "processInviteEvent.checkAuthEvents failed for event",
@ -127,7 +127,7 @@ func (r *RoomserverInternalAPI) PerformInvite(
if req.SendAsServer != api.DoNotSendToOtherServers && !isTargetLocal { if req.SendAsServer != api.DoNotSendToOtherServers && !isTargetLocal {
fsReq := &federationSenderAPI.PerformInviteRequest{ fsReq := &federationSenderAPI.PerformInviteRequest{
RoomVersion: req.RoomVersion, RoomVersion: req.RoomVersion,
Event: req.Event, Event: event,
InviteRoomState: inviteState, InviteRoomState: inviteState,
} }
fsRes := &federationSenderAPI.PerformInviteResponse{} fsRes := &federationSenderAPI.PerformInviteResponse{}
@ -158,7 +158,10 @@ func (r *RoomserverInternalAPI) PerformInvite(
}, },
} }
inputRes := &api.InputRoomEventsResponse{} inputRes := &api.InputRoomEventsResponse{}
go r.InputRoomEvents(context.Background(), inputReq, inputRes) // nolint:errcheck if err := r.InputRoomEvents(context.Background(), inputReq, inputRes); isOriginLocal && err != nil {
log.WithError(err).WithField("event_id", event.EventID()).Error("r.InputRoomEvents failed")
return fmt.Errorf("r.InputRoomEvents: %w", err)
}
succeeded = true succeeded = true
return nil return nil