Only send (invite) events to the AS if it's interested in it (#2692)

This should hopefully fix #2691 (and maybe also #2690)
This commit is contained in:
Till 2022-09-02 16:03:33 +02:00 committed by GitHub
parent fea869b41f
commit 350a5e5393
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -134,7 +134,7 @@ func (s *OutputRoomEventConsumer) onMessage(
} }
case api.OutputTypeNewInviteEvent: case api.OutputTypeNewInviteEvent:
if output.NewInviteEvent == nil { if output.NewInviteEvent == nil || !s.appserviceIsInterestedInEvent(ctx, output.NewInviteEvent.Event, state.ApplicationService) {
continue continue
} }
events = append(events, output.NewInviteEvent.Event) events = append(events, output.NewInviteEvent.Event)
@ -281,9 +281,11 @@ func (s *OutputRoomEventConsumer) appserviceJoinedAtEvent(ctx context.Context, e
case err != nil: case err != nil:
continue continue
case membership.Membership == gomatrixserverlib.Join: case membership.Membership == gomatrixserverlib.Join:
if appservice.IsInterestedInUserID(*ev.StateKey) {
return true return true
} }
} }
}
} else { } else {
log.WithFields(log.Fields{ log.WithFields(log.Fields{
"appservice": appservice.ID, "appservice": appservice.ID,