mirror of
https://github.com/matrix-org/dendrite.git
synced 2026-01-20 20:43:09 -06:00
Fix bug in device list change tracking
This commit is contained in:
parent
22bee54c19
commit
afd94dce8b
|
|
@ -144,6 +144,8 @@ func TrackChangedUsers(
|
||||||
// - Loop set of users and decrement by 1 for each user in newly left room.
|
// - Loop set of users and decrement by 1 for each user in newly left room.
|
||||||
// - If count=0 then they share no more rooms so inform BOTH parties of this via 'left'=[...] in /sync.
|
// - If count=0 then they share no more rooms so inform BOTH parties of this via 'left'=[...] in /sync.
|
||||||
var queryRes roomserverAPI.QuerySharedUsersResponse
|
var queryRes roomserverAPI.QuerySharedUsersResponse
|
||||||
|
var stateRes roomserverAPI.QueryBulkStateContentResponse
|
||||||
|
if len(newlyLeftRooms) > 0 {
|
||||||
err = rsAPI.QuerySharedUsers(ctx, &roomserverAPI.QuerySharedUsersRequest{
|
err = rsAPI.QuerySharedUsers(ctx, &roomserverAPI.QuerySharedUsersRequest{
|
||||||
UserID: userID,
|
UserID: userID,
|
||||||
IncludeRoomIDs: newlyLeftRooms,
|
IncludeRoomIDs: newlyLeftRooms,
|
||||||
|
|
@ -151,7 +153,7 @@ func TrackChangedUsers(
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
var stateRes roomserverAPI.QueryBulkStateContentResponse
|
|
||||||
err = rsAPI.QueryBulkStateContent(ctx, &roomserverAPI.QueryBulkStateContentRequest{
|
err = rsAPI.QueryBulkStateContent(ctx, &roomserverAPI.QueryBulkStateContentRequest{
|
||||||
RoomIDs: newlyLeftRooms,
|
RoomIDs: newlyLeftRooms,
|
||||||
StateTuples: []gomatrixserverlib.StateKeyTuple{
|
StateTuples: []gomatrixserverlib.StateKeyTuple{
|
||||||
|
|
@ -173,11 +175,13 @@ func TrackChangedUsers(
|
||||||
queryRes.UserIDsToCount[tuple.StateKey]--
|
queryRes.UserIDsToCount[tuple.StateKey]--
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for userID, count := range queryRes.UserIDsToCount {
|
for userID, count := range queryRes.UserIDsToCount {
|
||||||
if count <= 0 {
|
if count <= 0 {
|
||||||
left = append(left, userID) // left is returned
|
left = append(left, userID) // left is returned
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Join algorithm:
|
// Join algorithm:
|
||||||
// - Get the set of all joined users prior to joining room - QuerySharedUsersRequest with 'ExcludeRoomID'.
|
// - Get the set of all joined users prior to joining room - QuerySharedUsersRequest with 'ExcludeRoomID'.
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue