mirror of
https://github.com/matrix-org/dendrite.git
synced 2025-12-25 15:53:09 -06:00
Don't send isForwardExtremity
This commit is contained in:
parent
a60b476068
commit
29a42e1a9a
|
|
@ -91,9 +91,6 @@ const (
|
||||||
type OutputNewRoomEvent struct {
|
type OutputNewRoomEvent struct {
|
||||||
// The Event.
|
// The Event.
|
||||||
Event gomatrixserverlib.HeaderedEvent `json:"event"`
|
Event gomatrixserverlib.HeaderedEvent `json:"event"`
|
||||||
// Is the event a forward extremity in the room at the time of the output event
|
|
||||||
// being generated?
|
|
||||||
IsForwardExtremity bool `json:"is_forward_extremity"`
|
|
||||||
// Does the event completely rewrite the room state? If so, then AddsStateEventIDs
|
// Does the event completely rewrite the room state? If so, then AddsStateEventIDs
|
||||||
// will contain the entire room state.
|
// will contain the entire room state.
|
||||||
RewritesState bool `json:"rewrites_state"`
|
RewritesState bool `json:"rewrites_state"`
|
||||||
|
|
|
||||||
|
|
@ -85,7 +85,6 @@ func (r *Inputer) WriteOutputEvents(roomID string, updates []api.OutputEvent) er
|
||||||
logger = logger.WithFields(log.Fields{
|
logger = logger.WithFields(log.Fields{
|
||||||
"event_type": updates[i].NewRoomEvent.Event.Type(),
|
"event_type": updates[i].NewRoomEvent.Event.Type(),
|
||||||
"event_id": updates[i].NewRoomEvent.Event.EventID(),
|
"event_id": updates[i].NewRoomEvent.Event.EventID(),
|
||||||
"is_fwd_extrem": updates[i].NewRoomEvent.IsForwardExtremity,
|
|
||||||
"adds_state": len(updates[i].NewRoomEvent.AddsStateEventIDs),
|
"adds_state": len(updates[i].NewRoomEvent.AddsStateEventIDs),
|
||||||
"removes_state": len(updates[i].NewRoomEvent.RemovesStateEventIDs),
|
"removes_state": len(updates[i].NewRoomEvent.RemovesStateEventIDs),
|
||||||
"send_as_server": updates[i].NewRoomEvent.SendAsServer,
|
"send_as_server": updates[i].NewRoomEvent.SendAsServer,
|
||||||
|
|
|
||||||
|
|
@ -119,7 +119,7 @@ func (r *Inputer) processRoomEvent(
|
||||||
// We haven't calculated a state for this event yet.
|
// We haven't calculated a state for this event yet.
|
||||||
// Lets calculate one.
|
// Lets calculate one.
|
||||||
err = r.calculateAndSetState(ctx, input, *roomInfo, &stateAtEvent, event, isRejected)
|
err = r.calculateAndSetState(ctx, input, *roomInfo, &stateAtEvent, event, isRejected)
|
||||||
if err != nil {
|
if err != nil && input.Kind != api.KindOld {
|
||||||
return "", fmt.Errorf("r.calculateAndSetState: %w", err)
|
return "", fmt.Errorf("r.calculateAndSetState: %w", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -103,8 +103,6 @@ type latestEventsUpdater struct {
|
||||||
lastEventIDSent string
|
lastEventIDSent string
|
||||||
// The latest events in the room after processing this event.
|
// The latest events in the room after processing this event.
|
||||||
latest []types.StateAtEventAndReference
|
latest []types.StateAtEventAndReference
|
||||||
// Is the event now a current forward extremity?
|
|
||||||
isForwardExtremity bool
|
|
||||||
// The state entries removed from and added to the current state of the
|
// The state entries removed from and added to the current state of the
|
||||||
// room as a result of processing this event. They are sorted lists.
|
// room as a result of processing this event. They are sorted lists.
|
||||||
removed []types.StateEntry
|
removed []types.StateEntry
|
||||||
|
|
@ -290,7 +288,6 @@ func (u *latestEventsUpdater) calculateLatest(
|
||||||
// We've already referenced this new event so we can just return
|
// We've already referenced this new event so we can just return
|
||||||
// the newly completed extremities at this point.
|
// the newly completed extremities at this point.
|
||||||
u.latest = newLatest
|
u.latest = newLatest
|
||||||
u.isForwardExtremity = true
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -305,7 +302,6 @@ func (u *latestEventsUpdater) calculateLatest(
|
||||||
return fmt.Errorf("u.updater.IsReferenced (new): %w", err)
|
return fmt.Errorf("u.updater.IsReferenced (new): %w", err)
|
||||||
} else if !referenced || len(newLatest) == 0 {
|
} else if !referenced || len(newLatest) == 0 {
|
||||||
newLatest = append(newLatest, newEvent)
|
newLatest = append(newLatest, newEvent)
|
||||||
u.isForwardExtremity = true
|
|
||||||
}
|
}
|
||||||
|
|
||||||
u.latest = newLatest
|
u.latest = newLatest
|
||||||
|
|
@ -320,31 +316,28 @@ func (u *latestEventsUpdater) makeOutputNewRoomEvent() (*api.OutputEvent, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
ore := api.OutputNewRoomEvent{
|
ore := api.OutputNewRoomEvent{
|
||||||
Event: u.event.Headered(u.roomInfo.RoomVersion),
|
Event: u.event.Headered(u.roomInfo.RoomVersion),
|
||||||
IsForwardExtremity: u.isForwardExtremity,
|
RewritesState: u.rewritesState,
|
||||||
RewritesState: u.rewritesState,
|
LastSentEventID: u.lastEventIDSent,
|
||||||
LastSentEventID: u.lastEventIDSent,
|
LatestEventIDs: latestEventIDs,
|
||||||
LatestEventIDs: latestEventIDs,
|
TransactionID: u.transactionID,
|
||||||
TransactionID: u.transactionID,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if u.isForwardExtremity {
|
eventIDMap, err := u.stateEventMap()
|
||||||
eventIDMap, err := u.stateEventMap()
|
if err != nil {
|
||||||
if err != nil {
|
return nil, err
|
||||||
return nil, err
|
}
|
||||||
}
|
for _, entry := range u.added {
|
||||||
for _, entry := range u.added {
|
ore.AddsStateEventIDs = append(ore.AddsStateEventIDs, eventIDMap[entry.EventNID])
|
||||||
ore.AddsStateEventIDs = append(ore.AddsStateEventIDs, eventIDMap[entry.EventNID])
|
}
|
||||||
}
|
for _, entry := range u.removed {
|
||||||
for _, entry := range u.removed {
|
ore.RemovesStateEventIDs = append(ore.RemovesStateEventIDs, eventIDMap[entry.EventNID])
|
||||||
ore.RemovesStateEventIDs = append(ore.RemovesStateEventIDs, eventIDMap[entry.EventNID])
|
}
|
||||||
}
|
for _, entry := range u.stateBeforeEventRemoves {
|
||||||
for _, entry := range u.stateBeforeEventRemoves {
|
ore.StateBeforeRemovesEventIDs = append(ore.StateBeforeRemovesEventIDs, eventIDMap[entry.EventNID])
|
||||||
ore.StateBeforeRemovesEventIDs = append(ore.StateBeforeRemovesEventIDs, eventIDMap[entry.EventNID])
|
}
|
||||||
}
|
for _, entry := range u.stateBeforeEventAdds {
|
||||||
for _, entry := range u.stateBeforeEventAdds {
|
ore.StateBeforeAddsEventIDs = append(ore.StateBeforeAddsEventIDs, eventIDMap[entry.EventNID])
|
||||||
ore.StateBeforeAddsEventIDs = append(ore.StateBeforeAddsEventIDs, eventIDMap[entry.EventNID])
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ore.SendAsServer = u.sendAsServer
|
ore.SendAsServer = u.sendAsServer
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue