mirror of
https://github.com/matrix-org/dendrite.git
synced 2025-12-25 07:43:10 -06:00
Linting
This commit is contained in:
parent
9b20aa4ab8
commit
c3b6d9dae3
|
|
@ -178,26 +178,7 @@ func (r *FederationSenderInternalAPI) performJoinUsingServer(
|
||||||
// "If not provided, the room version is assumed to be either "1" or "2"."
|
// "If not provided, the room version is assumed to be either "1" or "2"."
|
||||||
// https://matrix.org/docs/spec/server_server/unstable#get-matrix-federation-v1-make-join-roomid-userid
|
// https://matrix.org/docs/spec/server_server/unstable#get-matrix-federation-v1-make-join-roomid-userid
|
||||||
if respMakeJoin.RoomVersion == "" {
|
if respMakeJoin.RoomVersion == "" {
|
||||||
// if auth events are not event references we know it must be v3+
|
respMakeJoin.RoomVersion = setDefaultRoomVersionFromJoinEvent(respMakeJoin.JoinEvent)
|
||||||
// we have to do these shenanigans to satisy sytest, specifically for:
|
|
||||||
// "Outbound federation rejects m.room.create events with an unknown room version"
|
|
||||||
hasEventRefs := true
|
|
||||||
authEvents, ok := respMakeJoin.JoinEvent.AuthEvents.([]interface{})
|
|
||||||
if ok {
|
|
||||||
if len(authEvents) > 0 {
|
|
||||||
_, ok = authEvents[0].(string)
|
|
||||||
if ok {
|
|
||||||
// event refs are objects, not strings, so we know we must be dealing with a v3+ room.
|
|
||||||
hasEventRefs = false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if hasEventRefs {
|
|
||||||
respMakeJoin.RoomVersion = gomatrixserverlib.RoomVersionV1
|
|
||||||
} else {
|
|
||||||
respMakeJoin.RoomVersion = gomatrixserverlib.RoomVersionV4
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if _, err = respMakeJoin.RoomVersion.EventFormat(); err != nil {
|
if _, err = respMakeJoin.RoomVersion.EventFormat(); err != nil {
|
||||||
return fmt.Errorf("respMakeJoin.RoomVersion.EventFormat: %w", err)
|
return fmt.Errorf("respMakeJoin.RoomVersion.EventFormat: %w", err)
|
||||||
|
|
@ -477,3 +458,25 @@ func sanityCheckSendJoinResponse(respSendJoin gomatrixserverlib.RespSendJoin) er
|
||||||
}
|
}
|
||||||
return fmt.Errorf("send_join response is missing m.room.create event")
|
return fmt.Errorf("send_join response is missing m.room.create event")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func setDefaultRoomVersionFromJoinEvent(joinEvent gomatrixserverlib.EventBuilder) gomatrixserverlib.RoomVersion {
|
||||||
|
// if auth events are not event references we know it must be v3+
|
||||||
|
// we have to do these shenanigans to satisfy sytest, specifically for:
|
||||||
|
// "Outbound federation rejects m.room.create events with an unknown room version"
|
||||||
|
hasEventRefs := true
|
||||||
|
authEvents, ok := joinEvent.AuthEvents.([]interface{})
|
||||||
|
if ok {
|
||||||
|
if len(authEvents) > 0 {
|
||||||
|
_, ok = authEvents[0].(string)
|
||||||
|
if ok {
|
||||||
|
// event refs are objects, not strings, so we know we must be dealing with a v3+ room.
|
||||||
|
hasEventRefs = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if hasEventRefs {
|
||||||
|
return gomatrixserverlib.RoomVersionV1
|
||||||
|
}
|
||||||
|
return gomatrixserverlib.RoomVersionV4
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue