From 46e85b841402ee178149c430495807aebc96d038 Mon Sep 17 00:00:00 2001 From: Neil Alexander Date: Tue, 11 Aug 2020 15:59:49 +0100 Subject: [PATCH] Bug fixes --- currentstateserver/api/wrapper.go | 5 ++++- currentstateserver/consumers/roomserver.go | 1 + currentstateserver/internal/api.go | 4 ++++ federationapi/federationapi.go | 1 - federationapi/routing/send_test.go | 4 ++++ 5 files changed, 13 insertions(+), 2 deletions(-) diff --git a/currentstateserver/api/wrapper.go b/currentstateserver/api/wrapper.go index 27cb09ab1..9c4246877 100644 --- a/currentstateserver/api/wrapper.go +++ b/currentstateserver/api/wrapper.go @@ -27,7 +27,10 @@ func GetEvent(ctx context.Context, stateAPI CurrentStateInternalAPI, roomID stri // IsServerBannedFromRoom returns whether the server is banned from a room by server ACLs. func IsServerBannedFromRoom(ctx context.Context, stateAPI CurrentStateInternalAPI, roomID string, serverName gomatrixserverlib.ServerName) bool { - req := &QueryServerBannedFromRoomRequest{} + req := &QueryServerBannedFromRoomRequest{ + ServerName: serverName, + RoomID: roomID, + } res := &QueryServerBannedFromRoomResponse{} if err := stateAPI.QueryServerBannedFromRoom(ctx, req, res); err != nil { util.GetLogger(ctx).WithError(err).Error("Failed to QueryServerBannedFromRoom") diff --git a/currentstateserver/consumers/roomserver.go b/currentstateserver/consumers/roomserver.go index 52ad5948f..e022d8efd 100644 --- a/currentstateserver/consumers/roomserver.go +++ b/currentstateserver/consumers/roomserver.go @@ -43,6 +43,7 @@ func NewOutputRoomEventConsumer(topicName string, kafkaConsumer sarama.Consumer, s := &OutputRoomEventConsumer{ rsConsumer: consumer, db: store, + acls: acls, } consumer.ProcessMessage = s.onMessage diff --git a/currentstateserver/internal/api.go b/currentstateserver/internal/api.go index d7e1a8e17..0a7e025e7 100644 --- a/currentstateserver/internal/api.go +++ b/currentstateserver/internal/api.go @@ -16,6 +16,7 @@ package internal import ( "context" + "errors" "github.com/matrix-org/dendrite/clientapi/auth/authtypes" "github.com/matrix-org/dendrite/currentstateserver/acls" @@ -116,6 +117,9 @@ func (a *CurrentStateInternalAPI) QuerySharedUsers(ctx context.Context, req *api } func (a *CurrentStateInternalAPI) QueryServerBannedFromRoom(ctx context.Context, req *api.QueryServerBannedFromRoomRequest, res *api.QueryServerBannedFromRoomResponse) error { + if a.ServerACLs == nil { + return errors.New("no server ACL tracking") + } res.Banned = a.ServerACLs.IsServerBannedFromRoom(req.ServerName, req.RoomID) return nil } diff --git a/federationapi/federationapi.go b/federationapi/federationapi.go index e9a8e40a9..e838e8e35 100644 --- a/federationapi/federationapi.go +++ b/federationapi/federationapi.go @@ -41,7 +41,6 @@ func AddPublicRoutes( stateAPI currentstateAPI.CurrentStateInternalAPI, keyAPI keyserverAPI.KeyInternalAPI, ) { - routing.Setup( router, cfg, rsAPI, eduAPI, federationSenderAPI, keyRing, diff --git a/federationapi/routing/send_test.go b/federationapi/routing/send_test.go index 1380c6b70..5d3ed230b 100644 --- a/federationapi/routing/send_test.go +++ b/federationapi/routing/send_test.go @@ -318,6 +318,10 @@ func (t *testStateAPI) QueryKnownUsers(ctx context.Context, req *currentstateAPI return fmt.Errorf("not implemented") } +func (t *testStateAPI) QueryServerBannedFromRoom(ctx context.Context, req *currentstateAPI.QueryServerBannedFromRoomRequest, res *currentstateAPI.QueryServerBannedFromRoomResponse) error { + return nil +} + type txnFedClient struct { state map[string]gomatrixserverlib.RespState // event_id to response stateIDs map[string]gomatrixserverlib.RespStateIDs // event_id to response