diff options
author | RaindropsSys <raindrops@equestria.dev> | 2023-11-17 23:25:29 +0100 |
---|---|---|
committer | RaindropsSys <raindrops@equestria.dev> | 2023-11-17 23:25:29 +0100 |
commit | 953ddd82e48dd206cef5ac94456549aed13b3ad5 (patch) | |
tree | 8f003106ee2e7f422e5a22d2ee04d0db302e66c0 /includes/external/matrix/node_modules/matrix-js-sdk/lib/rust-crypto/KeyClaimManager.js | |
parent | 62a9199846b0c07c03218703b33e8385764f42d9 (diff) | |
download | pluralconnect-953ddd82e48dd206cef5ac94456549aed13b3ad5.tar.gz pluralconnect-953ddd82e48dd206cef5ac94456549aed13b3ad5.tar.bz2 pluralconnect-953ddd82e48dd206cef5ac94456549aed13b3ad5.zip |
Updated 30 files and deleted 2976 files (automated)
Diffstat (limited to 'includes/external/matrix/node_modules/matrix-js-sdk/lib/rust-crypto/KeyClaimManager.js')
-rw-r--r-- | includes/external/matrix/node_modules/matrix-js-sdk/lib/rust-crypto/KeyClaimManager.js | 78 |
1 files changed, 0 insertions, 78 deletions
diff --git a/includes/external/matrix/node_modules/matrix-js-sdk/lib/rust-crypto/KeyClaimManager.js b/includes/external/matrix/node_modules/matrix-js-sdk/lib/rust-crypto/KeyClaimManager.js deleted file mode 100644 index 6565745..0000000 --- a/includes/external/matrix/node_modules/matrix-js-sdk/lib/rust-crypto/KeyClaimManager.js +++ /dev/null @@ -1,78 +0,0 @@ -"use strict"; - -var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.KeyClaimManager = void 0; -var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); -/* -Copyright 2023 The Matrix.org Foundation C.I.C. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -/** - * KeyClaimManager: linearises calls to OlmMachine.getMissingSessions to avoid races - * - * We have one of these per `RustCrypto` (and hence per `MatrixClient`). - */ -class KeyClaimManager { - constructor(olmMachine, outgoingRequestProcessor) { - this.olmMachine = olmMachine; - this.outgoingRequestProcessor = outgoingRequestProcessor; - (0, _defineProperty2.default)(this, "currentClaimPromise", void 0); - (0, _defineProperty2.default)(this, "stopped", false); - this.currentClaimPromise = Promise.resolve(); - } - - /** - * Tell the KeyClaimManager to immediately stop processing requests. - * - * Any further calls, and any still in the queue, will fail with an error. - */ - stop() { - this.stopped = true; - } - - /** - * Given a list of users, attempt to ensure that we have Olm Sessions active with each of their devices - * - * If we don't have an active olm session, we will claim a one-time key and start one. - * - * @param userList - list of userIDs to claim - */ - ensureSessionsForUsers(userList) { - // The Rust-SDK requires that we only have one getMissingSessions process in flight at once. This little dance - // ensures that, by only having one call to ensureSessionsForUsersInner active at once (and making them - // queue up in order). - const prom = this.currentClaimPromise.catch(() => { - // any errors in the previous claim will have been reported already, so there is nothing to do here. - // we just throw away the error and start anew. - }).then(() => this.ensureSessionsForUsersInner(userList)); - this.currentClaimPromise = prom; - return prom; - } - async ensureSessionsForUsersInner(userList) { - // bail out quickly if we've been stopped. - if (this.stopped) { - throw new Error(`Cannot ensure Olm sessions: shutting down`); - } - const claimRequest = await this.olmMachine.getMissingSessions(userList); - if (claimRequest) { - await this.outgoingRequestProcessor.makeOutgoingRequest(claimRequest); - } - } -} -exports.KeyClaimManager = KeyClaimManager; -//# sourceMappingURL=KeyClaimManager.js.map
\ No newline at end of file |