aboutsummaryrefslogtreecommitdiff
path: root/lib/connection.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/connection.cpp')
-rw-r--r--lib/connection.cpp20
1 files changed, 9 insertions, 11 deletions
diff --git a/lib/connection.cpp b/lib/connection.cpp
index 704bc1b4..9883b8f3 100644
--- a/lib/connection.cpp
+++ b/lib/connection.cpp
@@ -620,17 +620,15 @@ void Connection::onSyncSuccess(SyncData&& data, bool fromCache)
d->consumePresenceData(data.takePresenceData());
d->consumeToDeviceEvents(data.takeToDeviceEvents());
#ifdef Quotient_E2EE_ENABLED
- // handling device_one_time_keys_count
- //if (!d->encryptionManager)
- //{
- // qCDebug(E2EE) << "Encryption manager is not there yet, updating "
- // "one-time key counts will be skipped";
- // return;
- //}
- //if (const auto deviceOneTimeKeysCount = data.deviceOneTimeKeysCount();
- // !deviceOneTimeKeysCount.isEmpty())
- // d->encryptionManager->updateOneTimeKeyCounts(this,
- // deviceOneTimeKeysCount);
+ if(data.deviceOneTimeKeysCount()["signed_curve25519"] < 0.4 * d->olmAccount->maxNumberOfOneTimeKeys()) {
+ d->olmAccount->generateOneTimeKeys(d->olmAccount->maxNumberOfOneTimeKeys() - data.deviceOneTimeKeysCount()["signed_curve25519"]);
+ auto keys = d->olmAccount->oneTimeKeys();
+ auto job = d->olmAccount->createUploadKeyRequest(keys);
+ run(job, ForegroundRequest);
+ connect(job, &BaseJob::success, this, [=](){
+ d->olmAccount->markKeysAsPublished();
+ });
+ }
#endif // Quotient_E2EE_ENABLED
}