Don't run the latest events updater at all for KindOld

This commit is contained in:
Neil Alexander 2020-10-16 11:31:05 +01:00
parent 2f6b009fdb
commit 35d2972494
No known key found for this signature in database
GPG key ID: A02A2019A2BB0944
3 changed files with 34 additions and 39 deletions

View file

@ -85,6 +85,7 @@ func (r *Inputer) WriteOutputEvents(roomID string, updates []api.OutputEvent) er
logger = logger.WithFields(log.Fields{
"event_type": updates[i].NewRoomEvent.Event.Type(),
"event_id": updates[i].NewRoomEvent.Event.EventID(),
"is_fwd_extrem": updates[i].NewRoomEvent.IsForwardExtremity,
"adds_state": len(updates[i].NewRoomEvent.AddsStateEventIDs),
"removes_state": len(updates[i].NewRoomEvent.RemovesStateEventIDs),
"send_as_server": updates[i].NewRoomEvent.SendAsServer,

View file

@ -136,17 +136,18 @@ func (r *Inputer) processRoomEvent(
return event.EventID(), rejectionErr
}
if err = r.updateLatestEvents(
ctx, // context
roomInfo, // room info for the room being updated
stateAtEvent, // state at event (below)
input.Kind, // kind of event
event, // event
input.SendAsServer, // send as server
input.TransactionID, // transaction ID
input.HasState, // rewrites state?
); err != nil {
return "", fmt.Errorf("r.updateLatestEvents: %w", err)
if input.Kind == api.KindNew {
if err = r.updateLatestEvents(
ctx, // context
roomInfo, // room info for the room being updated
stateAtEvent, // state at event (below)
event, // event
input.SendAsServer, // send as server
input.TransactionID, // transaction ID
input.HasState, // rewrites state?
); err != nil {
return "", fmt.Errorf("r.updateLatestEvents: %w", err)
}
}
// processing this event resulted in an event (which may not be the one we're processing)

View file

@ -52,7 +52,6 @@ func (r *Inputer) updateLatestEvents(
ctx context.Context,
roomInfo *types.RoomInfo,
stateAtEvent types.StateAtEvent,
kind api.Kind,
event gomatrixserverlib.Event,
sendAsServer string,
transactionID *api.TransactionID,
@ -71,7 +70,6 @@ func (r *Inputer) updateLatestEvents(
updater: updater,
roomInfo: roomInfo,
stateAtEvent: stateAtEvent,
kind: kind,
event: event,
sendAsServer: sendAsServer,
transactionID: transactionID,
@ -97,7 +95,6 @@ type latestEventsUpdater struct {
roomInfo *types.RoomInfo
stateAtEvent types.StateAtEvent
event gomatrixserverlib.Event
kind api.Kind
transactionID *api.TransactionID
rewritesState bool
// Which server to send this event as.
@ -144,33 +141,29 @@ func (u *latestEventsUpdater) doUpdateLatestEvents() error {
return nil
}
var updates []api.OutputEvent
var err error
if u.kind == api.KindNew {
// Work out what the latest events are. This will include the new
// event if it is not already referenced.
if err = u.calculateLatest(
oldLatest,
types.StateAtEventAndReference{
EventReference: u.event.EventReference(),
StateAtEvent: u.stateAtEvent,
},
); err != nil {
return fmt.Errorf("u.calculateLatest: %w", err)
}
// Work out what the latest events are. This will include the new
// event if it is not already referenced.
if err := u.calculateLatest(
oldLatest,
types.StateAtEventAndReference{
EventReference: u.event.EventReference(),
StateAtEvent: u.stateAtEvent,
},
); err != nil {
return fmt.Errorf("u.calculateLatest: %w", err)
}
// Now that we know what the latest events are, it's time to get the
// latest state.
if err = u.latestState(); err != nil {
return fmt.Errorf("u.latestState: %w", err)
}
// Now that we know what the latest events are, it's time to get the
// latest state.
if err := u.latestState(); err != nil {
return fmt.Errorf("u.latestState: %w", err)
}
// If we need to generate any output events then here's where we do it.
// TODO: Move this!
updates, err = u.api.updateMemberships(u.ctx, u.updater, u.removed, u.added)
if err != nil {
return fmt.Errorf("u.api.updateMemberships: %w", err)
}
// If we need to generate any output events then here's where we do it.
// TODO: Move this!
updates, err := u.api.updateMemberships(u.ctx, u.updater, u.removed, u.added)
if err != nil {
return fmt.Errorf("u.api.updateMemberships: %w", err)
}
update, err := u.makeOutputNewRoomEvent()