diff --git a/cmd/dendrite-client-api-server/main.go b/cmd/dendrite-client-api-server/main.go index 56c6245d0..1ce66db2c 100644 --- a/cmd/dendrite-client-api-server/main.go +++ b/cmd/dendrite-client-api-server/main.go @@ -33,7 +33,7 @@ func main() { deviceDB := base.CreateDeviceDB() keyDB := base.CreateKeyDB() federation := base.CreateFederationClient() - keyRing := keydb.CreateKeyRing(federation.Client, keyDB, base.ImmutableCache, cfg.Matrix.KeyPerspectives) + keyRing := keydb.CreateKeyRing(federation.Client, keyDB, cfg.Matrix.KeyPerspectives) asQuery := base.CreateHTTPAppServiceAPIs() rsAPI := base.CreateHTTPRoomserverAPIs() diff --git a/cmd/dendrite-demo-libp2p/main.go b/cmd/dendrite-demo-libp2p/main.go index f7843fba4..ef2622538 100644 --- a/cmd/dendrite-demo-libp2p/main.go +++ b/cmd/dendrite-demo-libp2p/main.go @@ -148,7 +148,7 @@ func main() { keyDB := createKeyDB(base) federation := createFederationClient(base) // TODO: cache here - keyRing := keydb.CreateKeyRing(federation.Client, keyDB, nil, cfg.Matrix.KeyPerspectives) + keyRing := keydb.CreateKeyRing(federation.Client, keyDB, cfg.Matrix.KeyPerspectives) rsAPI := roomserver.SetupRoomServerComponent( &base.Base, keyRing, federation, diff --git a/cmd/dendrite-federation-api-server/main.go b/cmd/dendrite-federation-api-server/main.go index 1b3950551..d829326a7 100644 --- a/cmd/dendrite-federation-api-server/main.go +++ b/cmd/dendrite-federation-api-server/main.go @@ -33,7 +33,7 @@ func main() { keyDB := base.CreateKeyDB() federation := base.CreateFederationClient() fsAPI := base.CreateHTTPFederationSenderAPIs() - keyRing := keydb.CreateKeyRing(federation.Client, keyDB, base.ImmutableCache, cfg.Matrix.KeyPerspectives) + keyRing := keydb.CreateKeyRing(federation.Client, keyDB, cfg.Matrix.KeyPerspectives) rsAPI := base.CreateHTTPRoomserverAPIs() asAPI := base.CreateHTTPAppServiceAPIs() diff --git a/cmd/dendrite-federation-sender-server/main.go b/cmd/dendrite-federation-sender-server/main.go index af09d1c25..0daac1bcb 100644 --- a/cmd/dendrite-federation-sender-server/main.go +++ b/cmd/dendrite-federation-sender-server/main.go @@ -27,7 +27,7 @@ func main() { federation := base.CreateFederationClient() keyDB := base.CreateKeyDB() - keyRing := keydb.CreateKeyRing(federation.Client, keyDB, base.ImmutableCache, cfg.Matrix.KeyPerspectives) + keyRing := keydb.CreateKeyRing(federation.Client, keyDB, cfg.Matrix.KeyPerspectives) rsAPI := base.CreateHTTPRoomserverAPIs() fsAPI := federationsender.SetupFederationSenderComponent( base, federation, rsAPI, &keyRing, diff --git a/cmd/dendrite-monolith-server/main.go b/cmd/dendrite-monolith-server/main.go index fb361d407..f22610616 100644 --- a/cmd/dendrite-monolith-server/main.go +++ b/cmd/dendrite-monolith-server/main.go @@ -56,7 +56,7 @@ func main() { deviceDB := base.CreateDeviceDB() keyDB := base.CreateKeyDB() federation := base.CreateFederationClient() - keyRing := keydb.CreateKeyRing(federation.Client, keyDB, base.ImmutableCache, cfg.Matrix.KeyPerspectives) + keyRing := keydb.CreateKeyRing(federation.Client, keyDB, cfg.Matrix.KeyPerspectives) rsAPI := roomserver.SetupRoomServerComponent( base, keyRing, federation, diff --git a/cmd/dendrite-room-server/main.go b/cmd/dendrite-room-server/main.go index 215c69962..172468448 100644 --- a/cmd/dendrite-room-server/main.go +++ b/cmd/dendrite-room-server/main.go @@ -26,7 +26,7 @@ func main() { defer base.Close() // nolint: errcheck keyDB := base.CreateKeyDB() federation := base.CreateFederationClient() - keyRing := keydb.CreateKeyRing(federation.Client, keyDB, base.ImmutableCache, cfg.Matrix.KeyPerspectives) + keyRing := keydb.CreateKeyRing(federation.Client, keyDB, cfg.Matrix.KeyPerspectives) fsAPI := base.CreateHTTPFederationSenderAPIs() rsAPI := roomserver.SetupRoomServerComponent(base, keyRing, federation) diff --git a/common/basecomponent/base.go b/common/basecomponent/base.go index cb04a308e..0aeb86085 100644 --- a/common/basecomponent/base.go +++ b/common/basecomponent/base.go @@ -25,6 +25,7 @@ import ( "github.com/matrix-org/dendrite/common/caching" "github.com/matrix-org/dendrite/common/keydb" + "github.com/matrix-org/dendrite/common/keydb/cache" "github.com/matrix-org/dendrite/internal/sqlutil" "github.com/matrix-org/gomatrixserverlib" "github.com/matrix-org/naffka" @@ -186,7 +187,11 @@ func (b *BaseDendrite) CreateKeyDB() keydb.Database { logrus.WithError(err).Panicf("failed to connect to keys db") } - return db + cachedDB, err := cache.NewDatabase(db, b.ImmutableCache) + if err != nil { + logrus.WithError(err).Panicf("failed to create key cache wrapper") + } + return cachedDB } // CreateFederationClient creates a new federation client. Should only be called diff --git a/common/keydb/keyring.go b/common/keydb/keyring.go index 6f6552b1d..e9cc7903e 100644 --- a/common/keydb/keyring.go +++ b/common/keydb/keyring.go @@ -17,7 +17,6 @@ package keydb import ( "encoding/base64" - "github.com/matrix-org/dendrite/common/caching" "github.com/matrix-org/dendrite/common/config" "github.com/matrix-org/gomatrixserverlib" "github.com/sirupsen/logrus" @@ -30,7 +29,6 @@ import ( // backed by the given KeyDatabase. func CreateKeyRing(client gomatrixserverlib.Client, keyDB gomatrixserverlib.KeyDatabase, - cache caching.ImmutableCache, cfg config.KeyPerspectives) gomatrixserverlib.KeyRing { fetchers := gomatrixserverlib.KeyRing{ @@ -40,7 +38,6 @@ func CreateKeyRing(client gomatrixserverlib.Client, }, }, KeyDatabase: keyDB, - KeyCache: cache, } logrus.Info("Enabled direct key fetcher")