diff --git a/clientapi/routing/createroom.go b/clientapi/routing/createroom.go index a384e0757..18ca2347d 100644 --- a/clientapi/routing/createroom.go +++ b/clientapi/routing/createroom.go @@ -200,7 +200,7 @@ func createRoom( if createRequest.Preset == spec.PresetTrustedPrivateChat { additionalCreators = createRequest.Invite } - createContent, err := roomserverAPI.GenerateCreateContent(ctx, createRequest.RoomVersion, userID.String(), createRequest.CreationContent, additionalCreators) + createContent, err := roomserverAPI.GenerateCreateContent(ctx, roomVersion, userID.String(), createRequest.CreationContent, additionalCreators) if err != nil { util.GetLogger(ctx).WithError(err).Error("GenerateCreateContent failed") return util.JSONResponse{ diff --git a/federationapi/routing/backfill.go b/federationapi/routing/backfill.go index 945975d6f..20f5923df 100644 --- a/federationapi/routing/backfill.go +++ b/federationapi/routing/backfill.go @@ -37,7 +37,7 @@ func Backfill( var err error // Check the room ID's format. - if _, _, err = gomatrixserverlib.SplitID('!', roomID); err != nil { + if _, err = spec.NewRoomID(roomID); err != nil { return util.JSONResponse{ Code: http.StatusBadRequest, JSON: spec.MissingParam("Bad room ID: " + err.Error()), diff --git a/federationapi/routing/threepid.go b/federationapi/routing/threepid.go index c2b4fa045..efde7014a 100644 --- a/federationapi/routing/threepid.go +++ b/federationapi/routing/threepid.go @@ -394,10 +394,11 @@ func sendToRemoteServer( } // Fallback to the room's server if the sender's domain is the same as // the current server's - _, remoteServers[1], err = gomatrixserverlib.SplitID('!', inv.RoomID) + roomID, err := spec.NewRoomID(inv.RoomID) if err != nil { return } + remoteServers[1] = roomID.Domain() for _, server := range remoteServers { err = federation.ExchangeThirdPartyInvite(ctx, cfg.Matrix.ServerName, server, proto) diff --git a/roomserver/internal/perform/perform_admin.go b/roomserver/internal/perform/perform_admin.go index da8c92a6b..9e7cc865e 100644 --- a/roomserver/internal/perform/perform_admin.go +++ b/roomserver/internal/perform/perform_admin.go @@ -192,7 +192,7 @@ func (r *Admin) PerformAdminPurgeRoom( roomID string, ) error { // Validate we actually got a room ID and nothing else - if _, _, err := gomatrixserverlib.SplitID('!', roomID); err != nil { + if _, err := spec.NewRoomID(roomID); err != nil { return err } diff --git a/roomserver/internal/perform/perform_peek.go b/roomserver/internal/perform/perform_peek.go index d15a90ac3..09da37385 100644 --- a/roomserver/internal/perform/perform_peek.go +++ b/roomserver/internal/perform/perform_peek.go @@ -114,11 +114,11 @@ func (r *Peeker) performPeekRoomByID( roomID = req.RoomIDOrAlias // Get the domain part of the room ID. - _, domain, err := gomatrixserverlib.SplitID('!', roomID) + specRoomID, err := spec.NewRoomID(roomID) if err != nil { return "", api.ErrInvalidID{Err: fmt.Errorf("room ID %q is invalid: %w", roomID, err)} } - + domain := specRoomID.Domain() // handle federated peeks // FIXME: don't create an outbound peek if we already have one going. if !r.Cfg.Matrix.IsLocalServerName(domain) { diff --git a/roomserver/internal/perform/perform_unpeek.go b/roomserver/internal/perform/perform_unpeek.go index db17937ad..b1e55d049 100644 --- a/roomserver/internal/perform/perform_unpeek.go +++ b/roomserver/internal/perform/perform_unpeek.go @@ -49,7 +49,7 @@ func (r *Unpeeker) performUnpeekRoomByID( roomID, userID, deviceID string, ) (err error) { // Get the domain part of the room ID. - _, _, err = gomatrixserverlib.SplitID('!', roomID) + _, err = spec.NewRoomID(roomID) if err != nil { return api.ErrInvalidID{Err: fmt.Errorf("room ID %q is invalid: %w", roomID, err)} }