diff --git a/common/events.go b/common/events.go index c0189b469..19c929f94 100644 --- a/common/events.go +++ b/common/events.go @@ -135,3 +135,12 @@ func AddPrevEventsToEvent( return nil } + +// RemoveEventHeaders unwraps an array of headered events. +func RemoveEventHeaders(in []gomatrixserverlib.HeaderedEvent) []gomatrixserverlib.Event { + result := make([]gomatrixserverlib.Event, len(in)) + for i := range in { + result[i] = in[i].Event + } + return result +} diff --git a/federationapi/routing/join.go b/federationapi/routing/join.go index e2b6c1733..d88ef6af5 100644 --- a/federationapi/routing/join.go +++ b/federationapi/routing/join.go @@ -219,8 +219,8 @@ func SendJoin( return util.JSONResponse{ Code: http.StatusOK, JSON: map[string]interface{}{ - "state": stateAndAuthChainResponse.StateEvents, - "auth_chain": stateAndAuthChainResponse.AuthChainEvents, + "state": common.RemoveEventHeaders(stateAndAuthChainResponse.StateEvents), + "auth_chain": common.RemoveEventHeaders(stateAndAuthChainResponse.AuthChainEvents), }, } } diff --git a/federationapi/routing/state.go b/federationapi/routing/state.go index 86a1e08d2..d0090d7b7 100644 --- a/federationapi/routing/state.go +++ b/federationapi/routing/state.go @@ -18,6 +18,7 @@ import ( "net/url" "github.com/matrix-org/dendrite/clientapi/jsonerror" + "github.com/matrix-org/dendrite/common" "github.com/matrix-org/dendrite/roomserver/api" "github.com/matrix-org/gomatrixserverlib" "github.com/matrix-org/util" @@ -129,17 +130,9 @@ func getState( return nil, &util.JSONResponse{Code: http.StatusNotFound, JSON: nil} } - var stateEvents, authEvents []gomatrixserverlib.Event - for _, headeredEvent := range response.StateEvents { - stateEvents = append(stateEvents, headeredEvent.Event) - } - for _, headeredEvent := range response.AuthChainEvents { - authEvents = append(authEvents, headeredEvent.Event) - } - return &gomatrixserverlib.RespState{ - StateEvents: stateEvents, - AuthEvents: authEvents, + StateEvents: common.RemoveEventHeaders(response.StateEvents), + AuthEvents: common.RemoveEventHeaders(response.AuthChainEvents), }, nil }