Dependency inject the federation client so p2p binaries work as expected
MODIFY
cmd/dendrite-demo-libp2p/main.go
cmd/dendrite-demo-libp2p/main.go
@@ -148,7 +148,7 @@ func main() {
federation := createFederationClient(base)
keyRing := keydb.CreateKeyRing(federation.Client, keyDB, cfg.Matrix.KeyPerspectives)
- alias, input, query := roomserver.SetupRoomServerComponent(&base.Base, keyRing)
+ alias, input, query := roomserver.SetupRoomServerComponent(&base.Base, keyRing, federation)
eduInputAPI := eduserver.SetupEDUServerComponent(&base.Base, cache.New())
asQuery := appservice.SetupAppServiceAPIComponent(
&base.Base, accountDB, deviceDB, federation, alias, query, transactions.New(),

MODIFY
cmd/dendrite-monolith-server/main.go
cmd/dendrite-monolith-server/main.go
@@ -57,7 +57,7 @@ func main() {
federation := base.CreateFederationClient()
keyRing := keydb.CreateKeyRing(federation.Client, keyDB, cfg.Matrix.KeyPerspectives)
- alias, input, query := roomserver.SetupRoomServerComponent(base, keyRing)
+ alias, input, query := roomserver.SetupRoomServerComponent(base, keyRing, federation)
eduInputAPI := eduserver.SetupEDUServerComponent(base, cache.New())
asQuery := appservice.SetupAppServiceAPIComponent(
base, accountDB, deviceDB, federation, alias, query, transactions.New(),

MODIFY
cmd/dendrite-room-server/main.go
cmd/dendrite-room-server/main.go
@@ -30,7 +30,7 @@ func main() {
federation := base.CreateFederationClient()
keyRing := keydb.CreateKeyRing(federation.Client, keyDB, cfg.Matrix.KeyPerspectives)
- roomserver.SetupRoomServerComponent(base, keyRing)
+ roomserver.SetupRoomServerComponent(base, keyRing, federation)
base.SetupAndServeHTTP(string(base.Cfg.Bind.RoomServer), string(base.Cfg.Listen.RoomServer))

MODIFY
cmd/dendritejs/main.go
cmd/dendritejs/main.go
@@ -123,7 +123,7 @@ func main() {
}
p2pPublicRoomProvider := NewLibP2PPublicRoomsProvider(node)
- alias, input, query := roomserver.SetupRoomServerComponent(base, keyRing)
+ alias, input, query := roomserver.SetupRoomServerComponent(base, keyRing, federation)
eduInputAPI := eduserver.SetupEDUServerComponent(base, cache.New())
asQuery := appservice.SetupAppServiceAPIComponent(
base, accountDB, deviceDB, federation, alias, query, transactions.New(),

MODIFY
roomserver/roomserver.go
roomserver/roomserver.go
@@ -35,6 +35,7 @@ import (
// APIs directly instead of having to use HTTP.
func SetupRoomServerComponent(
base *basecomponent.BaseDendrite, keyRing gomatrixserverlib.JSONVerifier,
+ fedClient *gomatrixserverlib.FederationClient,
) (api.RoomserverAliasAPI, api.RoomserverInputAPI, api.RoomserverQueryAPI) {
roomserverDB, err := storage.Open(string(base.Cfg.Database.RoomServer))
if err != nil {
@@ -53,7 +54,7 @@ func SetupRoomServerComponent(
DB: roomserverDB,
ImmutableCache: base.ImmutableCache,
ServerName: base.Cfg.Matrix.ServerName,
- FedClient: base.CreateFederationClient(),
+ FedClient: fedClient,
// TODO: We should have a key server so we don't keep adding components
// which talk to the same DB.
KeyRing: keyRing,

Dependency inject the federation client so p2p binaries work as expected (#987)