Skip to content
Snippets Groups Projects
Verified Commit f6788ecf authored by Nicolas Werner's avatar Nicolas Werner
Browse files

Break up large key requests into smaller ones

Otherwise we might get stuck on requests exceeding the server side size
limits forever.
parent 96a07cf7
No related branches found
No related tags found
No related merge requests found
Pipeline #5972 waiting for manual action
......@@ -5389,6 +5389,22 @@ Cache::markUserKeysOutOfDate(lmdb::txn &txn,
db_.put(txn, user, nlohmann::json(cacheEntry).dump());
query.device_keys[user] = {};
if (query.device_keys.size() >= 32) {
http::client()->query_keys(
query,
[this, sync_token](const mtx::responses::QueryKeys &keys, mtx::http::RequestErr err) {
if (err) {
nhlog::net()->warn("failed to query device keys: {} {}",
err->matrix_error.error,
static_cast<int>(err->status_code));
return;
}
emit userKeysUpdate(sync_token, keys);
});
query.device_keys.clear();
}
}
if (!query.device_keys.empty())
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment