mirror of
https://github.com/matrix-org/dendrite.git
synced 2024-11-26 00:01:55 -06:00
Fix /send_join and /send_leave (#821)
Fix the /send_join and /send_leave endpoints, so that they use the v2 endpoints as mandated by MSC1802. Also comment out the SyTest tests that are failing because of lack of support for the v1 endpoints.
This commit is contained in:
parent
b4d638cd04
commit
af9568ba44
|
@ -33,6 +33,7 @@ import (
|
||||||
const (
|
const (
|
||||||
pathPrefixV2Keys = "/_matrix/key/v2"
|
pathPrefixV2Keys = "/_matrix/key/v2"
|
||||||
pathPrefixV1Federation = "/_matrix/federation/v1"
|
pathPrefixV1Federation = "/_matrix/federation/v1"
|
||||||
|
pathPrefixV2Federation = "/_matrix/federation/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Setup registers HTTP handlers with the given ServeMux.
|
// Setup registers HTTP handlers with the given ServeMux.
|
||||||
|
@ -55,6 +56,7 @@ func Setup(
|
||||||
) {
|
) {
|
||||||
v2keysmux := apiMux.PathPrefix(pathPrefixV2Keys).Subrouter()
|
v2keysmux := apiMux.PathPrefix(pathPrefixV2Keys).Subrouter()
|
||||||
v1fedmux := apiMux.PathPrefix(pathPrefixV1Federation).Subrouter()
|
v1fedmux := apiMux.PathPrefix(pathPrefixV1Federation).Subrouter()
|
||||||
|
v2fedmux := apiMux.PathPrefix(pathPrefixV2Federation).Subrouter()
|
||||||
|
|
||||||
localKeys := common.MakeExternalAPI("localkeys", func(req *http.Request) util.JSONResponse {
|
localKeys := common.MakeExternalAPI("localkeys", func(req *http.Request) util.JSONResponse {
|
||||||
return LocalKeys(cfg)
|
return LocalKeys(cfg)
|
||||||
|
@ -200,7 +202,7 @@ func Setup(
|
||||||
},
|
},
|
||||||
)).Methods(http.MethodGet)
|
)).Methods(http.MethodGet)
|
||||||
|
|
||||||
v1fedmux.Handle("/send_join/{roomID}/{userID}", common.MakeFedAPI(
|
v2fedmux.Handle("/send_join/{roomID}/{userID}", common.MakeFedAPI(
|
||||||
"federation_send_join", cfg.Matrix.ServerName, keys,
|
"federation_send_join", cfg.Matrix.ServerName, keys,
|
||||||
func(httpReq *http.Request, request *gomatrixserverlib.FederationRequest) util.JSONResponse {
|
func(httpReq *http.Request, request *gomatrixserverlib.FederationRequest) util.JSONResponse {
|
||||||
vars, err := common.URLDecodeMapValues(mux.Vars(httpReq))
|
vars, err := common.URLDecodeMapValues(mux.Vars(httpReq))
|
||||||
|
@ -230,7 +232,7 @@ func Setup(
|
||||||
},
|
},
|
||||||
)).Methods(http.MethodGet)
|
)).Methods(http.MethodGet)
|
||||||
|
|
||||||
v1fedmux.Handle("/send_leave/{roomID}/{userID}", common.MakeFedAPI(
|
v2fedmux.Handle("/send_leave/{roomID}/{userID}", common.MakeFedAPI(
|
||||||
"federation_send_leave", cfg.Matrix.ServerName, keys,
|
"federation_send_leave", cfg.Matrix.ServerName, keys,
|
||||||
func(httpReq *http.Request, request *gomatrixserverlib.FederationRequest) util.JSONResponse {
|
func(httpReq *http.Request, request *gomatrixserverlib.FederationRequest) util.JSONResponse {
|
||||||
vars, err := common.URLDecodeMapValues(mux.Vars(httpReq))
|
vars, err := common.URLDecodeMapValues(mux.Vars(httpReq))
|
||||||
|
|
25
testfile
25
testfile
|
@ -126,8 +126,14 @@ Checking local federation server
|
||||||
Inbound federation can query profile data
|
Inbound federation can query profile data
|
||||||
Outbound federation can send room-join requests
|
Outbound federation can send room-join requests
|
||||||
Outbound federation can send events
|
Outbound federation can send events
|
||||||
Inbound federation can backfill events
|
# SyTest currently only implements the v1 endpoints for /send_join and /send_leave,
|
||||||
Backfill checks the events requested belong to the room
|
# whereas Dendrite only supports the v2 endpoints for those, so let's ignore this
|
||||||
|
# test for now.
|
||||||
|
#Inbound federation can backfill events
|
||||||
|
# SyTest currently only implements the v1 endpoints for /send_join and /send_leave,
|
||||||
|
# whereas Dendrite only supports the v2 endpoints for those, so let's ignore this
|
||||||
|
# test for now.
|
||||||
|
#Backfill checks the events requested belong to the room
|
||||||
Can upload without a file name
|
Can upload without a file name
|
||||||
Can download without a file name locally
|
Can download without a file name locally
|
||||||
Can upload with ASCII file name
|
Can upload with ASCII file name
|
||||||
|
@ -143,7 +149,10 @@ Trying to get push rules with unknown rule_id fails with 404
|
||||||
Events come down the correct room
|
Events come down the correct room
|
||||||
local user can join room with version 5
|
local user can join room with version 5
|
||||||
User can invite local user to room with version 5
|
User can invite local user to room with version 5
|
||||||
Inbound federation can receive v1 room-join requests
|
# SyTest currently only implements the v1 endpoints for /send_join and /send_leave,
|
||||||
|
# whereas Dendrite only supports the v2 endpoints for those, so let's ignore this
|
||||||
|
# test for now.
|
||||||
|
#Inbound federation can receive v1 room-join requests
|
||||||
Typing events appear in initial sync
|
Typing events appear in initial sync
|
||||||
Typing events appear in incremental sync
|
Typing events appear in incremental sync
|
||||||
Typing events appear in gapped sync
|
Typing events appear in gapped sync
|
||||||
|
@ -156,8 +165,14 @@ User can create and send/receive messages in a room with version 1
|
||||||
POST /createRoom ignores attempts to set the room version via creation_content
|
POST /createRoom ignores attempts to set the room version via creation_content
|
||||||
Inbound federation rejects remote attempts to join local users to rooms
|
Inbound federation rejects remote attempts to join local users to rooms
|
||||||
Inbound federation rejects remote attempts to kick local users to rooms
|
Inbound federation rejects remote attempts to kick local users to rooms
|
||||||
An event which redacts itself should be ignored
|
# SyTest currently only implements the v1 endpoints for /send_join and /send_leave,
|
||||||
A pair of events which redact each other should be ignored
|
# whereas Dendrite only supports the v2 endpoints for those, so let's ignore this
|
||||||
|
# test for now.
|
||||||
|
#An event which redacts itself should be ignored
|
||||||
|
# SyTest currently only implements the v1 endpoints for /send_join and /send_leave,
|
||||||
|
# whereas Dendrite only supports the v2 endpoints for those, so let's ignore this
|
||||||
|
# test for now.
|
||||||
|
#A pair of events which redact each other should be ignored
|
||||||
Full state sync includes joined rooms
|
Full state sync includes joined rooms
|
||||||
A message sent after an initial sync appears in the timeline of an incremental sync.
|
A message sent after an initial sync appears in the timeline of an incremental sync.
|
||||||
Can add tag
|
Can add tag
|
||||||
|
|
Loading…
Reference in a new issue