This commit is contained in:
Kegan Dougal 2020-05-05 14:52:52 +01:00
parent 1b34ebcc9c
commit 97d6cd0855

View file

@ -306,6 +306,9 @@ func (t *txnReq) processEventWithMissingState(e gomatrixserverlib.Event, roomVer
// Fallback to /state // Fallback to /state
util.GetLogger(t.context).WithError(err).Warn("processEventWithMissingState failed to /state_ids, falling back to /state") util.GetLogger(t.context).WithError(err).Warn("processEventWithMissingState failed to /state_ids, falling back to /state")
respState, err = t.lookupMissingStateViaState(e, roomVersion) respState, err = t.lookupMissingStateViaState(e, roomVersion)
if err != nil {
return err
}
} }
// Check that the event is allowed by the state. // Check that the event is allowed by the state.
@ -403,6 +406,11 @@ func (t *txnReq) lookupMissingStateViaStateIDs(e gomatrixserverlib.Event, roomVe
haveEventMap[event.EventID()] = &h haveEventMap[event.EventID()] = &h
} }
} }
return t.createRespStateFromStateIDs(stateIDs, haveEventMap)
}
func (t *txnReq) createRespStateFromStateIDs(stateIDs gomatrixserverlib.RespStateIDs, haveEventMap map[string]*gomatrixserverlib.HeaderedEvent) (
*gomatrixserverlib.RespState, error) {
// create a RespState response using the response to /state_ids as a guide // create a RespState response using the response to /state_ids as a guide
respState := gomatrixserverlib.RespState{ respState := gomatrixserverlib.RespState{
AuthEvents: make([]gomatrixserverlib.Event, len(stateIDs.AuthEventIDs)), AuthEvents: make([]gomatrixserverlib.Event, len(stateIDs.AuthEventIDs)),