MCPcopy Create free account
hub / github.com/daodst/chat / setDefaultRoomVersionFromJoinEvent

Function setDefaultRoomVersionFromJoinEvent

federationapi/internal/perform.go:678–698  ·  view source on GitHub ↗
(joinEvent gomatrixserverlib.EventBuilder)

Source from the content-addressed store, hash-verified

676}
677
678func setDefaultRoomVersionFromJoinEvent(joinEvent gomatrixserverlib.EventBuilder) gomatrixserverlib.RoomVersion {
679 // if auth events are not event references we know it must be v3+
680 // we have to do these shenanigans to satisfy sytest, specifically for:
681 // "Outbound federation rejects m.room.create events with an unknown room version"
682 hasEventRefs := true
683 authEvents, ok := joinEvent.AuthEvents.([]interface{})
684 if ok {
685 if len(authEvents) > 0 {
686 _, ok = authEvents[0].(string)
687 if ok {
688 // event refs are objects, not strings, so we know we must be dealing with a v3+ room.
689 hasEventRefs = false
690 }
691 }
692 }
693
694 if hasEventRefs {
695 return gomatrixserverlib.RoomVersionV1
696 }
697 return gomatrixserverlib.RoomVersionV4
698}
699
700// FederatedAuthProvider is an auth chain provider which fetches events from the server provided
701func federatedAuthProvider(

Callers 1

Calls

no outgoing calls

Tested by

no test coverage detected