From f607ef29c2cbd442da506c29da78c8b995093f22 Mon Sep 17 00:00:00 2001 From: Brendan Abolivier Date: Fri, 18 Aug 2017 15:33:40 +0100 Subject: [PATCH] Add a route matching the trailing slash on the state event sending route (#182) * Add a route matching the trailing slash on the state event sending route * Use single route for both cases * Use synapse regexp --- .../matrix-org/dendrite/clientapi/routing/routing.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/github.com/matrix-org/dendrite/clientapi/routing/routing.go b/src/github.com/matrix-org/dendrite/clientapi/routing/routing.go index 68a9de07..b74c455a 100644 --- a/src/github.com/matrix-org/dendrite/clientapi/routing/routing.go +++ b/src/github.com/matrix-org/dendrite/clientapi/routing/routing.go @@ -17,6 +17,7 @@ package routing import ( "encoding/json" "net/http" + "strings" "github.com/gorilla/mux" "github.com/matrix-org/dendrite/clientapi/auth/authtypes" @@ -93,11 +94,16 @@ func Setup( return writers.SendEvent(req, device, vars["roomID"], vars["eventType"], vars["txnID"], nil, cfg, queryAPI, producer) }), ) - r0mux.Handle("/rooms/{roomID}/state/{eventType}", + r0mux.Handle("/rooms/{roomID}/state/{eventType:[^/]+/?}", common.MakeAuthAPI("send_message", deviceDB, func(req *http.Request, device *authtypes.Device) util.JSONResponse { vars := mux.Vars(req) emptyString := "" - return writers.SendEvent(req, device, vars["roomID"], vars["eventType"], vars["txnID"], &emptyString, cfg, queryAPI, producer) + eventType := vars["eventType"] + // If there's a trailing slash, remove it + if strings.HasSuffix(eventType, "/") { + eventType = eventType[:len(eventType)-1] + } + return writers.SendEvent(req, device, vars["roomID"], eventType, vars["txnID"], &emptyString, cfg, queryAPI, producer) }), ) r0mux.Handle("/rooms/{roomID}/state/{eventType}/{stateKey}",