diff --git a/federationapi/routing/invite.go b/federationapi/routing/invite.go index 0453af40e..6ce100eff 100644 --- a/federationapi/routing/invite.go +++ b/federationapi/routing/invite.go @@ -46,7 +46,7 @@ func InviteV2( } } return processInvite( - httpReq.Context(), inviteReq.Event(), inviteReq.RoomVersion(), inviteReq.InviteRoomState(), roomID, eventID, cfg, rsAPI, keys, + httpReq.Context(), true, inviteReq.Event(), inviteReq.RoomVersion(), inviteReq.InviteRoomState(), roomID, eventID, cfg, rsAPI, keys, ) } @@ -75,12 +75,13 @@ func InviteV1( util.GetLogger(httpReq.Context()).Warnf("failed to extract stripped state from invite event") } return processInvite( - httpReq.Context(), event, roomVer, strippedState, roomID, eventID, cfg, rsAPI, keys, + httpReq.Context(), false, event, roomVer, strippedState, roomID, eventID, cfg, rsAPI, keys, ) } func processInvite( ctx context.Context, + isInviteV2 bool, event gomatrixserverlib.Event, roomVer gomatrixserverlib.RoomVersion, strippedState []gomatrixserverlib.InviteV2StrippedState, @@ -152,9 +153,16 @@ func processInvite( case nil: // Return the signed event to the originating server, it should then tell // the other servers in the room that we have been invited. - return util.JSONResponse{ - Code: http.StatusOK, - JSON: gomatrixserverlib.RespInviteV2{Event: signedEvent}, + if isInviteV2 { + return util.JSONResponse{ + Code: http.StatusOK, + JSON: gomatrixserverlib.RespInviteV2{Event: signedEvent}, + } + } else { + return util.JSONResponse{ + Code: http.StatusOK, + JSON: gomatrixserverlib.RespInvite{Event: signedEvent}, + } } default: util.GetLogger(ctx).WithError(err).Error("api.SendInvite failed") diff --git a/federationapi/routing/routing.go b/federationapi/routing/routing.go index 650ef16df..5ea190a17 100644 --- a/federationapi/routing/routing.go +++ b/federationapi/routing/routing.go @@ -90,16 +90,10 @@ func Setup( JSON: jsonerror.Forbidden("Forbidden by server ACLs"), } } - res := InviteV1( + return InviteV1( httpReq, request, vars["roomID"], vars["eventID"], cfg, rsAPI, keys, ) - return util.JSONResponse{ - Code: res.Code, - JSON: []interface{}{ - res.Code, res.JSON, - }, - } }, )).Methods(http.MethodPut, http.MethodOptions) diff --git a/federationsender/api/api.go b/federationsender/api/api.go index 051e8e512..9f9c2645c 100644 --- a/federationsender/api/api.go +++ b/federationsender/api/api.go @@ -94,7 +94,7 @@ type PerformInviteRequest struct { } type PerformInviteResponse struct { - SignedEvent gomatrixserverlib.HeaderedEvent `json:"signed_event"` + Event gomatrixserverlib.HeaderedEvent `json:"event"` } type PerformServersAliveRequest struct { diff --git a/federationsender/internal/perform.go b/federationsender/internal/perform.go index 44c506267..da8d41a74 100644 --- a/federationsender/internal/perform.go +++ b/federationsender/internal/perform.go @@ -329,12 +329,7 @@ func (r *FederationSenderInternalAPI) PerformInvite( return fmt.Errorf("r.federation.SendInviteV2: %w", err) } - response.SignedEvent = inviteRes.Event.Sign( - string(r.cfg.Matrix.ServerName), - r.cfg.Matrix.KeyID, - r.cfg.Matrix.PrivateKey, - ).Headered(request.RoomVersion) - + response.Event = inviteRes.Event.Headered(request.RoomVersion) return nil } diff --git a/go.mod b/go.mod index 3dff3dfa6..9d1a80955 100644 --- a/go.mod +++ b/go.mod @@ -23,7 +23,7 @@ require ( github.com/matrix-org/go-http-js-libp2p v0.0.0-20200518170932-783164aeeda4 github.com/matrix-org/go-sqlite3-js v0.0.0-20200522092705-bc8506ccbcf3 github.com/matrix-org/gomatrix v0.0.0-20190528120928-7df988a63f26 - github.com/matrix-org/gomatrixserverlib v0.0.0-20200817095438-5be6e67209c8 + github.com/matrix-org/gomatrixserverlib v0.0.0-20200817100842-9d02141812f2 github.com/matrix-org/naffka v0.0.0-20200422140631-181f1ee7401f github.com/matrix-org/util v0.0.0-20200807132607-55161520e1d4 github.com/mattn/go-sqlite3 v2.0.2+incompatible diff --git a/roomserver/internal/perform_invite.go b/roomserver/internal/perform_invite.go index 9f883a562..2e6bcc8ec 100644 --- a/roomserver/internal/perform_invite.go +++ b/roomserver/internal/perform_invite.go @@ -139,7 +139,7 @@ func (r *RoomserverInternalAPI) PerformInvite( log.WithError(err).WithField("event_id", event.EventID()).Error("r.fsAPI.PerformInvite failed") return nil } - event = fsRes.SignedEvent + event = fsRes.Event } }