This commit is contained in:
Kegan Dougal 2020-03-24 10:54:50 +00:00
parent acf9d76c1e
commit 45e781dbf6
2 changed files with 11 additions and 7 deletions

View file

@ -598,10 +598,14 @@ func (r *RoomserverQueryAPI) isServerCurrentlyInRoom(ctx context.Context, server
return auth.IsAnyUserOnServerWithMembership(serverName, gmslEvents, gomatrixserverlib.Join), nil return auth.IsAnyUserOnServerWithMembership(serverName, gmslEvents, gomatrixserverlib.Join), nil
} }
// TODO: Remove this when we have tests to assert correctness of this function
// nolint:gocyclo
func (r *RoomserverQueryAPI) scanEventTree( func (r *RoomserverQueryAPI) scanEventTree(
ctx context.Context, front []string, visited map[string]bool, limit int, ctx context.Context, front []string, visited map[string]bool, limit int,
serverName gomatrixserverlib.ServerName, serverName gomatrixserverlib.ServerName,
) (resultNIDs []types.EventNID, err error) { ) ([]types.EventNID, error) {
var resultNIDs []types.EventNID
var err error
var allowed bool var allowed bool
var events []types.Event var events []types.Event
var next []string var next []string
@ -633,7 +637,7 @@ BFSLoop:
// Retrieve the events to process from the database. // Retrieve the events to process from the database.
events, err = r.DB.EventsFromIDs(ctx, front) events, err = r.DB.EventsFromIDs(ctx, front)
if err != nil { if err != nil {
return return resultNIDs, err
} }
if !checkedServerInRoom && len(events) > 0 { if !checkedServerInRoom && len(events) > 0 {
@ -668,7 +672,7 @@ BFSLoop:
util.GetLogger(ctx).WithField("server", serverName).WithField("event_id", pre).WithError(err).Error( util.GetLogger(ctx).WithField("server", serverName).WithField("event_id", pre).WithError(err).Error(
"Error checking if allowed to see event", "Error checking if allowed to see event",
) )
return return resultNIDs, err
} }
// If the event hasn't been seen before and the HS // If the event hasn't been seen before and the HS
@ -686,7 +690,7 @@ BFSLoop:
front = next front = next
} }
return return resultNIDs, err
} }
// QueryStateAndAuthChain implements api.RoomserverQueryAPI // QueryStateAndAuthChain implements api.RoomserverQueryAPI

View file

@ -428,9 +428,9 @@ func (r *messagesReq) serverToBackfillFrom(fromEventIDs []string) (gomatrixserve
// The rationale here is that the last event was unlikely to be sent by us, so poke the server who sent it. // The rationale here is that the last event was unlikely to be sent by us, so poke the server who sent it.
// We shouldn't be doing this really, but as a heuristic it should work pretty well for now. // We shouldn't be doing this really, but as a heuristic it should work pretty well for now.
for _, e := range events { for _, e := range events {
_, srv, err := gomatrixserverlib.SplitID('@', e.Sender()) _, srv, srverr := gomatrixserverlib.SplitID('@', e.Sender())
if err != nil { if srverr != nil {
util.GetLogger(r.ctx).WithError(err).Warn("Failed to extract domain from event sender") util.GetLogger(r.ctx).WithError(srverr).Warn("Failed to extract domain from event sender")
continue continue
} }
if srv != r.cfg.Matrix.ServerName { if srv != r.cfg.Matrix.ServerName {