mirror of
https://github.com/matrix-org/dendrite.git
synced 2026-01-01 03:03:10 -06:00
Merge branch 'main' into s7evink/ban
This commit is contained in:
commit
c18a307237
|
|
@ -554,7 +554,6 @@ func (r *FederationInternalAPI) PerformInvite(
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("r.federation.SendInviteV2: failed to send invite: %w", err)
|
return fmt.Errorf("r.federation.SendInviteV2: failed to send invite: %w", err)
|
||||||
}
|
}
|
||||||
logrus.Infof("GOT INVITE RESPONSE %s", string(inviteRes.Event))
|
|
||||||
|
|
||||||
inviteEvent, err := inviteRes.Event.UntrustedEvent(request.RoomVersion)
|
inviteEvent, err := inviteRes.Event.UntrustedEvent(request.RoomVersion)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
||||||
|
|
@ -241,14 +241,33 @@ func (u *DeviceListUpdater) update(ctx context.Context, event gomatrixserverlib.
|
||||||
StreamID: event.StreamID,
|
StreamID: event.StreamID,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// DeviceKeysJSON will side-effect modify this, so it needs
|
||||||
|
// to be a copy, not sharing any pointers with the above.
|
||||||
|
deviceKeysCopy := *keys[0].DeviceKeys
|
||||||
|
deviceKeysCopy.KeyJSON = nil
|
||||||
|
existingKeys := []api.DeviceMessage{
|
||||||
|
{
|
||||||
|
Type: keys[0].Type,
|
||||||
|
DeviceKeys: &deviceKeysCopy,
|
||||||
|
StreamID: keys[0].StreamID,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
// fetch what keys we had already and only emit changes
|
||||||
|
if err = u.db.DeviceKeysJSON(ctx, existingKeys); err != nil {
|
||||||
|
// non-fatal, log and continue
|
||||||
|
util.GetLogger(ctx).WithError(err).WithField("user_id", event.UserID).Errorf(
|
||||||
|
"failed to query device keys json for calculating diffs",
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
err = u.db.StoreRemoteDeviceKeys(ctx, keys, nil)
|
err = u.db.StoreRemoteDeviceKeys(ctx, keys, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, fmt.Errorf("failed to store remote device keys for %s (%s): %w", event.UserID, event.DeviceID, err)
|
return false, fmt.Errorf("failed to store remote device keys for %s (%s): %w", event.UserID, event.DeviceID, err)
|
||||||
}
|
}
|
||||||
// ALWAYS emit key changes when we've been poked over federation even if there's no change
|
|
||||||
// just in case this poke is important for something.
|
if err = emitDeviceKeyChanges(u.producer, existingKeys, keys); err != nil {
|
||||||
err = u.producer.ProduceKeyChanges(keys)
|
|
||||||
if err != nil {
|
|
||||||
return false, fmt.Errorf("failed to produce device key changes for %s (%s): %w", event.UserID, event.DeviceID, err)
|
return false, fmt.Errorf("failed to produce device key changes for %s (%s): %w", event.UserID, event.DeviceID, err)
|
||||||
}
|
}
|
||||||
return false, nil
|
return false, nil
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@ import (
|
||||||
"github.com/matrix-org/dendrite/roomserver/types"
|
"github.com/matrix-org/dendrite/roomserver/types"
|
||||||
"github.com/matrix-org/gomatrixserverlib"
|
"github.com/matrix-org/gomatrixserverlib"
|
||||||
"github.com/matrix-org/util"
|
"github.com/matrix-org/util"
|
||||||
|
"github.com/sirupsen/logrus"
|
||||||
"github.com/tidwall/gjson"
|
"github.com/tidwall/gjson"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -1101,7 +1102,7 @@ func (d *Database) JoinedUsersSetInRooms(ctx context.Context, roomIDs []string)
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if len(nidToUserID) != len(userNIDToCount) {
|
if len(nidToUserID) != len(userNIDToCount) {
|
||||||
return nil, fmt.Errorf("found %d users but only have state key nids for %d of them", len(userNIDToCount), len(nidToUserID))
|
logrus.Warnf("SelectJoinedUsersSetForRooms found %d users but BulkSelectEventStateKey only returned state key NIDs for %d of them", len(userNIDToCount), len(nidToUserID))
|
||||||
}
|
}
|
||||||
result := make(map[string]int, len(userNIDToCount))
|
result := make(map[string]int, len(userNIDToCount))
|
||||||
for nid, count := range userNIDToCount {
|
for nid, count := range userNIDToCount {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue