mirror of
https://github.com/matrix-org/dendrite.git
synced 2025-12-17 03:43:11 -06:00
Only loopback invite event if we know the room
This commit is contained in:
parent
0100f65f57
commit
c744cf052f
|
|
@ -54,21 +54,26 @@ func (r *RoomserverInternalAPI) InputRoomEvents(
|
||||||
ctx context.Context,
|
ctx context.Context,
|
||||||
request *api.InputRoomEventsRequest,
|
request *api.InputRoomEventsRequest,
|
||||||
response *api.InputRoomEventsResponse,
|
response *api.InputRoomEventsResponse,
|
||||||
) (err error) {
|
) error {
|
||||||
// We lock as processRoomEvent can only be called once at a time
|
// We lock as processRoomEvent can only be called once at a time
|
||||||
r.mutex.Lock()
|
r.mutex.Lock()
|
||||||
defer r.mutex.Unlock()
|
defer r.mutex.Unlock()
|
||||||
for i := range request.InputInviteEvents {
|
for i := range request.InputInviteEvents {
|
||||||
if event, e := processInviteEvent(ctx, r.DB, r, request.InputInviteEvents[i]); e != nil {
|
if event, err := processInviteEvent(ctx, r.DB, r, request.InputInviteEvents[i]); err != nil {
|
||||||
return e
|
return err
|
||||||
} else {
|
} else {
|
||||||
request.InputRoomEvents = append(request.InputRoomEvents, api.InputRoomEvent{
|
// If the room is one that we know about then append the invite
|
||||||
Kind: api.KindNew,
|
// event to the list of room events to process.
|
||||||
Event: *event,
|
if nid, err := r.DB.RoomNIDExcludingStubs(ctx, event.RoomID()); err == nil && nid > 0 {
|
||||||
AuthEventIDs: event.AuthEventIDs(),
|
request.InputRoomEvents = append(request.InputRoomEvents, api.InputRoomEvent{
|
||||||
})
|
Kind: api.KindNew,
|
||||||
|
Event: *event,
|
||||||
|
AuthEventIDs: event.AuthEventIDs(),
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
var err error
|
||||||
for i := range request.InputRoomEvents {
|
for i := range request.InputRoomEvents {
|
||||||
if response.EventID, err = processRoomEvent(ctx, r.DB, r, request.InputRoomEvents[i]); err != nil {
|
if response.EventID, err = processRoomEvent(ctx, r.DB, r, request.InputRoomEvents[i]); err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue