mirror of
https://github.com/hoernschen/dendrite.git
synced 2025-08-02 14:12:47 +00:00
Sorta transplanted the code over
This commit is contained in:
parent
69111355d0
commit
2203dd9d8a
22 changed files with 1111 additions and 778 deletions
|
@ -54,6 +54,8 @@ type InputRoomEvent struct {
|
|||
Kind Kind `json:"kind"`
|
||||
// The event JSON for the event to add.
|
||||
Event *gomatrixserverlib.HeaderedEvent `json:"event"`
|
||||
// Which server told us about this event.
|
||||
Origin gomatrixserverlib.ServerName `json:"origin"`
|
||||
// List of state event IDs that authenticate this event.
|
||||
// These are likely derived from the "auth_events" JSON key of the event.
|
||||
// But can be different because the "auth_events" key can be incomplete or wrong.
|
||||
|
|
|
@ -22,10 +22,15 @@ import (
|
|||
"github.com/matrix-org/util"
|
||||
)
|
||||
|
||||
type RoomEventInputter interface {
|
||||
InputRoomEvents(context.Context, *InputRoomEventsRequest, *InputRoomEventsResponse)
|
||||
}
|
||||
|
||||
// SendEvents to the roomserver The events are written with KindNew.
|
||||
func SendEvents(
|
||||
ctx context.Context, rsAPI RoomserverInternalAPI,
|
||||
ctx context.Context, rsAPI RoomEventInputter,
|
||||
kind Kind, events []*gomatrixserverlib.HeaderedEvent,
|
||||
origin gomatrixserverlib.ServerName,
|
||||
sendAsServer gomatrixserverlib.ServerName, txnID *TransactionID,
|
||||
) error {
|
||||
ires := make([]InputRoomEvent, len(events))
|
||||
|
@ -33,6 +38,7 @@ func SendEvents(
|
|||
ires[i] = InputRoomEvent{
|
||||
Kind: kind,
|
||||
Event: event,
|
||||
Origin: origin,
|
||||
AuthEventIDs: event.AuthEventIDs(),
|
||||
SendAsServer: string(sendAsServer),
|
||||
TransactionID: txnID,
|
||||
|
@ -45,9 +51,9 @@ func SendEvents(
|
|||
// with the state at the event as KindOutlier before it. Will not send any event that is
|
||||
// marked as `true` in haveEventIDs.
|
||||
func SendEventWithState(
|
||||
ctx context.Context, rsAPI RoomserverInternalAPI, kind Kind,
|
||||
ctx context.Context, rsAPI RoomEventInputter, kind Kind,
|
||||
state *gomatrixserverlib.RespState, event *gomatrixserverlib.HeaderedEvent,
|
||||
haveEventIDs map[string]bool,
|
||||
origin gomatrixserverlib.ServerName, haveEventIDs map[string]bool,
|
||||
) error {
|
||||
outliers, err := state.Events()
|
||||
if err != nil {
|
||||
|
@ -62,6 +68,7 @@ func SendEventWithState(
|
|||
ires = append(ires, InputRoomEvent{
|
||||
Kind: KindOutlier,
|
||||
Event: outlier.Headered(event.RoomVersion),
|
||||
Origin: origin,
|
||||
AuthEventIDs: outlier.AuthEventIDs(),
|
||||
})
|
||||
}
|
||||
|
@ -74,6 +81,7 @@ func SendEventWithState(
|
|||
ires = append(ires, InputRoomEvent{
|
||||
Kind: kind,
|
||||
Event: event,
|
||||
Origin: origin,
|
||||
AuthEventIDs: event.AuthEventIDs(),
|
||||
HasState: true,
|
||||
StateEventIDs: stateEventIDs,
|
||||
|
@ -84,7 +92,7 @@ func SendEventWithState(
|
|||
|
||||
// SendInputRoomEvents to the roomserver.
|
||||
func SendInputRoomEvents(
|
||||
ctx context.Context, rsAPI RoomserverInternalAPI, ires []InputRoomEvent,
|
||||
ctx context.Context, rsAPI RoomEventInputter, ires []InputRoomEvent,
|
||||
) error {
|
||||
request := InputRoomEventsRequest{InputRoomEvents: ires}
|
||||
var response InputRoomEventsResponse
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue