Strip headers on federationapi endpoints

This commit is contained in:
Neil Alexander 2020-03-26 09:40:46 +00:00
parent 50bb441215
commit eedb355b57
3 changed files with 14 additions and 12 deletions

View file

@ -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
}

View file

@ -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),
},
}
}

View file

@ -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
}