Prevent roomserver asking AS API for alias info

This commit is contained in:
Neil Alexander 2020-04-30 17:43:03 +01:00
parent 76cceac638
commit 185662a3c6
2 changed files with 18 additions and 15 deletions

View file

@ -20,7 +20,6 @@ import (
"errors" "errors"
"time" "time"
appserviceAPI "github.com/matrix-org/dendrite/appservice/api"
"github.com/matrix-org/dendrite/roomserver/api" "github.com/matrix-org/dendrite/roomserver/api"
"github.com/matrix-org/gomatrixserverlib" "github.com/matrix-org/gomatrixserverlib"
) )
@ -90,22 +89,28 @@ func (r *RoomserverInternalAPI) GetRoomIDForAlias(
return err return err
} }
if roomID == "" { /*
// No room found locally, try our application services by making a call to TODO: Why is this here? It creates an unnecessary dependency
// the appservice component from the roomserver to the appservice component, which should be
aliasReq := appserviceAPI.RoomAliasExistsRequest{Alias: request.Alias} altogether optional.
var aliasResp appserviceAPI.RoomAliasExistsResponse
if err = r.AppserviceAPI.RoomAliasExists(ctx, &aliasReq, &aliasResp); err != nil {
return err
}
if aliasResp.AliasExists { if roomID == "" {
roomID, err = r.DB.GetRoomIDForAlias(ctx, request.Alias) // No room found locally, try our application services by making a call to
if err != nil { // the appservice component
aliasReq := appserviceAPI.RoomAliasExistsRequest{Alias: request.Alias}
var aliasResp appserviceAPI.RoomAliasExistsResponse
if err = r.AppserviceAPI.RoomAliasExists(ctx, &aliasReq, &aliasResp); err != nil {
return err return err
} }
if aliasResp.AliasExists {
roomID, err = r.DB.GetRoomIDForAlias(ctx, request.Alias)
if err != nil {
return err
}
}
} }
} */
response.RoomID = roomID response.RoomID = roomID
return nil return nil

View file

@ -6,7 +6,6 @@ import (
"sync" "sync"
"github.com/Shopify/sarama" "github.com/Shopify/sarama"
appserviceAPI "github.com/matrix-org/dendrite/appservice/api"
"github.com/matrix-org/dendrite/common" "github.com/matrix-org/dendrite/common"
"github.com/matrix-org/dendrite/common/caching" "github.com/matrix-org/dendrite/common/caching"
"github.com/matrix-org/dendrite/common/config" "github.com/matrix-org/dendrite/common/config"
@ -29,7 +28,6 @@ type RoomserverInternalAPI struct {
OutputRoomEventTopic string // Kafka topic for new output room events OutputRoomEventTopic string // Kafka topic for new output room events
mutex sync.Mutex // Protects calls to processRoomEvent mutex sync.Mutex // Protects calls to processRoomEvent
fsAPI fsAPI.FederationSenderInternalAPI fsAPI fsAPI.FederationSenderInternalAPI
AppserviceAPI appserviceAPI.AppServiceQueryAPI
} }
// SetupHTTP adds the RoomserverInternalAPI handlers to the http.ServeMux. // SetupHTTP adds the RoomserverInternalAPI handlers to the http.ServeMux.