From 3b9898836c2c2e53e72d4b4b2e5bd073f1e135ef Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Mon, 27 Apr 2020 13:13:26 -0700 Subject: [PATCH] modules/client/keys/claim: Dynamic calculation for request buffer. --- modules/client/keys/claim.cc | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/modules/client/keys/claim.cc b/modules/client/keys/claim.cc index c4f8d940d..f08d37e7d 100644 --- a/modules/client/keys/claim.cc +++ b/modules/client/keys/claim.cc @@ -271,13 +271,26 @@ send_request(const string_view &remote, query_map &ret) try { - m::fed::user::keys::claim::opts opts; - opts.remote = remote; - const auto &buffer + static const size_t buffer_unit_size { - buffers.emplace_back(8_KiB) + m::user::id::MAX_SIZE + 1 // 256 + + 128 // device_id + + 128 // algorithm }; + static_assert(is_powerof2(buffer_unit_size)); + const size_t buffer_size + { + buffer_unit_size * queries.size() + }; + + const auto &buffer + { + buffers.emplace_back(buffer_size) + }; + + m::fed::user::keys::claim::opts opts; + opts.remote = remote; ret.emplace ( std::piecewise_construct,