Skip to content

Commit

Permalink
attempt at fixing #245
Browse files Browse the repository at this point in the history
  • Loading branch information
bwindels committed Mar 3, 2021
1 parent e29bc67 commit 56db210
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 4 deletions.
6 changes: 5 additions & 1 deletion src/matrix/e2ee/RoomEncryption.js
Original file line number Diff line number Diff line change
Expand Up @@ -80,14 +80,16 @@ export class RoomEncryption {
}

async writeMemberChanges(memberChanges, txn) {
let shouldFlush;
const memberChangesArray = Array.from(memberChanges.values());
if (memberChangesArray.some(m => m.hasLeft)) {
this._megolmEncryption.discardOutboundSession(this._room.id, txn);
}
if (memberChangesArray.some(m => m.hasJoined)) {
await this._addShareRoomKeyOperationForNewMembers(memberChangesArray, txn);
shouldFlush = await this._addShareRoomKeyOperationForNewMembers(memberChangesArray, txn);
}
await this._deviceTracker.writeMemberChanges(this._room, memberChanges, txn);
return shouldFlush;
}

// this happens before entries exists, as they are created by the syncwriter
Expand Down Expand Up @@ -314,7 +316,9 @@ export class RoomEncryption {
this._room.id, txn);
if (roomKeyMessage) {
this._writeRoomKeyShareOperation(roomKeyMessage, userIds, txn);
return true;
}
return false;
}

_writeRoomKeyShareOperation(roomKeyMessage, userIds, txn) {
Expand Down
9 changes: 6 additions & 3 deletions src/matrix/room/Room.js
Original file line number Diff line number Diff line change
Expand Up @@ -232,9 +232,11 @@ export class Room extends EventEmitter {
}
decryption.applyToEntries(entries);
}
let shouldFlushKeyShares = false;
// pass member changes to device tracker
if (roomEncryption && this.isTrackingMembers && memberChanges?.size) {
await roomEncryption.writeMemberChanges(memberChanges, txn);
shouldFlushKeyShares = await roomEncryption.writeMemberChanges(memberChanges, txn);
log.set("shouldFlushKeyShares", shouldFlushKeyShares);
}
// also apply (decrypted) timeline entries to the summary changes
summaryChanges = summaryChanges.applyTimelineEntries(
Expand Down Expand Up @@ -263,6 +265,7 @@ export class Room extends EventEmitter {
removedPendingEvents,
memberChanges,
heroChanges,
shouldFlushKeyShares,
};
}

Expand Down Expand Up @@ -314,8 +317,8 @@ export class Room extends EventEmitter {
}
}

needsAfterSyncCompleted({memberChanges}) {
return this._roomEncryption?.needsToShareKeys(memberChanges);
needsAfterSyncCompleted({shouldFlushKeyShares}) {
return shouldFlushKeyShares;
}

/**
Expand Down

0 comments on commit 56db210

Please sign in to comment.