mirror of
https://github.com/matrix-org/dendrite.git
synced 2024-11-29 17:51:56 -06:00
35804f8493
This PR adds a config key `room_server.default_config_key` to set the default room version for the room server. Signed-off-by: `Sam Wedgwood <sam@wedgwood.dev>`
38 lines
1.1 KiB
Go
38 lines
1.1 KiB
Go
package config
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/matrix-org/gomatrixserverlib"
|
|
log "github.com/sirupsen/logrus"
|
|
)
|
|
|
|
type RoomServer struct {
|
|
Matrix *Global `yaml:"-"`
|
|
|
|
DefaultRoomVersion gomatrixserverlib.RoomVersion `yaml:"default_room_version,omitempty"`
|
|
|
|
Database DatabaseOptions `yaml:"database,omitempty"`
|
|
}
|
|
|
|
func (c *RoomServer) Defaults(opts DefaultOpts) {
|
|
c.DefaultRoomVersion = gomatrixserverlib.RoomVersionV10
|
|
if opts.Generate {
|
|
if !opts.SingleDatabase {
|
|
c.Database.ConnectionString = "file:roomserver.db"
|
|
}
|
|
}
|
|
}
|
|
|
|
func (c *RoomServer) Verify(configErrs *ConfigErrors) {
|
|
if c.Matrix.DatabaseOptions.ConnectionString == "" {
|
|
checkNotEmpty(configErrs, "room_server.database.connection_string", string(c.Database.ConnectionString))
|
|
}
|
|
|
|
if !gomatrixserverlib.KnownRoomVersion(c.DefaultRoomVersion) {
|
|
configErrs.Add(fmt.Sprintf("invalid value for config key 'room_server.default_room_version': unsupported room version: %q", c.DefaultRoomVersion))
|
|
} else if !gomatrixserverlib.StableRoomVersion(c.DefaultRoomVersion) {
|
|
log.Warnf("WARNING: Provided default room version %q is unstable", c.DefaultRoomVersion)
|
|
}
|
|
}
|