Merge branch 'main' of github.com:matrix-org/dendrite into s7evink/consent-tracking

This commit is contained in:
Till Faelligen 2022-03-04 15:10:23 +01:00
commit fa26aa9138
2 changed files with 14 additions and 9 deletions

View file

@ -117,13 +117,16 @@ func makeDownloadAPI(
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")
// Ratelimit requests // Ratelimit requests
if r := rateLimits.Limit(req); r != nil { // NOTSPEC: The spec says everything at /media/ should be rate limited, but this causes issues with thumbnails (#2243)
if err := json.NewEncoder(w).Encode(r); err != nil { if name != "thumbnail" {
w.WriteHeader(http.StatusInternalServerError) if r := rateLimits.Limit(req); r != nil {
if err := json.NewEncoder(w).Encode(r); err != nil {
w.WriteHeader(http.StatusInternalServerError)
return
}
w.WriteHeader(http.StatusTooManyRequests)
return return
} }
w.WriteHeader(http.StatusTooManyRequests)
return
} }
vars, _ := httputil.URLDecodeMapValues(mux.Vars(req)) vars, _ := httputil.URLDecodeMapValues(mux.Vars(req))

View file

@ -184,16 +184,18 @@ func OnIncomingMessagesRequest(
// at least fetch the membership events for the users returned in chunk if LazyLoadMembers is set // at least fetch the membership events for the users returned in chunk if LazyLoadMembers is set
state := []gomatrixserverlib.ClientEvent{} state := []gomatrixserverlib.ClientEvent{}
if filter.LazyLoadMembers { if filter.LazyLoadMembers {
memberShipToUser := make(map[string]*gomatrixserverlib.HeaderedEvent) membershipToUser := make(map[string]*gomatrixserverlib.HeaderedEvent)
for _, evt := range clientEvents { for _, evt := range clientEvents {
memberShip, err := db.GetStateEvent(req.Context(), roomID, gomatrixserverlib.MRoomMember, evt.Sender) membership, err := db.GetStateEvent(req.Context(), roomID, gomatrixserverlib.MRoomMember, evt.Sender)
if err != nil { if err != nil {
util.GetLogger(req.Context()).WithError(err).Error("failed to get membership event for user") util.GetLogger(req.Context()).WithError(err).Error("failed to get membership event for user")
continue continue
} }
memberShipToUser[evt.Sender] = memberShip if membership != nil {
membershipToUser[evt.Sender] = membership
}
} }
for _, evt := range memberShipToUser { for _, evt := range membershipToUser {
state = append(state, gomatrixserverlib.HeaderedToClientEvent(evt, gomatrixserverlib.FormatAll)) state = append(state, gomatrixserverlib.HeaderedToClientEvent(evt, gomatrixserverlib.FormatAll))
} }
} }