(joinEvent gomatrixserverlib.EventBuilder)
| 676 | } |
| 677 | |
| 678 | func 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 |
| 701 | func federatedAuthProvider( |
no outgoing calls
no test coverage detected