mirror of
https://github.com/matrix-construct/construct
synced 2024-06-08 04:58:58 +02:00
ircd:Ⓜ️:keys: Add query overload for supplied buffer; add conf item defaults.
This commit is contained in:
parent
95274dd0cd
commit
95d5361c20
|
@ -63,7 +63,8 @@ struct ircd::m::keys
|
||||||
static bool get(const queries &, const closure_bool &);
|
static bool get(const queries &, const closure_bool &);
|
||||||
static bool get(const string_view &server_name, const closure &);
|
static bool get(const string_view &server_name, const closure &);
|
||||||
static bool get(const string_view &server_name, const string_view &key_id, const closure &);
|
static bool get(const string_view &server_name, const string_view &key_id, const closure &);
|
||||||
static bool query(const string_view &query_server, const queries &, const closure_bool &);
|
static bool query(const string_view &remote, const queries &, const closure_bool &, const mutable_buffer &, const bool dynamic = false);
|
||||||
|
static bool query(const string_view &remote, const queries &, const closure_bool &);
|
||||||
static size_t fetch(const queries &);
|
static size_t fetch(const queries &);
|
||||||
static size_t fetch(const pdus &);
|
static size_t fetch(const pdus &);
|
||||||
|
|
||||||
|
|
|
@ -186,6 +186,8 @@ ircd::m::expired(const m::keys &keys)
|
||||||
namespace ircd::m
|
namespace ircd::m
|
||||||
{
|
{
|
||||||
extern conf::item<milliseconds> keys_query_timeout;
|
extern conf::item<milliseconds> keys_query_timeout;
|
||||||
|
extern conf::item<size_t> keys_query_buffer_size;
|
||||||
|
extern conf::item<bool> keys_query_buffer_dynamic;
|
||||||
}
|
}
|
||||||
|
|
||||||
decltype(ircd::m::keys_query_timeout)
|
decltype(ircd::m::keys_query_timeout)
|
||||||
|
@ -195,22 +197,51 @@ ircd::m::keys_query_timeout
|
||||||
{ "default", 20000L }
|
{ "default", 20000L }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
decltype(ircd::m::keys_query_buffer_size)
|
||||||
|
ircd::m::keys_query_buffer_size
|
||||||
|
{
|
||||||
|
{ "name", "ircd.keys.query.buffer.size" },
|
||||||
|
{ "default", long(32_KiB) },
|
||||||
|
};
|
||||||
|
|
||||||
|
decltype(ircd::m::keys_query_buffer_dynamic)
|
||||||
|
ircd::m::keys_query_buffer_dynamic
|
||||||
|
{
|
||||||
|
{ "name", "ircd.keys.query.buffer.dynamic" },
|
||||||
|
{ "default", false },
|
||||||
|
};
|
||||||
|
|
||||||
bool
|
bool
|
||||||
ircd::m::keys::query(const string_view &query_server,
|
ircd::m::keys::query(const string_view &query_server,
|
||||||
const queries &queries,
|
const queries &queries,
|
||||||
const closure_bool &closure)
|
const closure_bool &closure)
|
||||||
|
{
|
||||||
|
const unique_mutable_buffer buf
|
||||||
|
{
|
||||||
|
keys_query_buffer_size
|
||||||
|
};
|
||||||
|
|
||||||
|
const bool dynamic
|
||||||
|
{
|
||||||
|
keys_query_buffer_dynamic
|
||||||
|
};
|
||||||
|
|
||||||
|
return query(query_server, queries, closure, buf, dynamic);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
ircd::m::keys::query(const string_view &query_server,
|
||||||
|
const queries &queries,
|
||||||
|
const closure_bool &closure,
|
||||||
|
const mutable_buffer &buf,
|
||||||
|
const bool dynamic)
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
assert(!query_server.empty());
|
assert(!query_server.empty());
|
||||||
|
|
||||||
m::fed::key::opts opts;
|
m::fed::key::opts opts;
|
||||||
opts.remote = query_server;
|
opts.remote = query_server;
|
||||||
opts.dynamic = false;
|
opts.dynamic = dynamic;
|
||||||
const unique_buffer<mutable_buffer> buf
|
|
||||||
{
|
|
||||||
32_KiB
|
|
||||||
};
|
|
||||||
|
|
||||||
m::fed::key::query request
|
m::fed::key::query request
|
||||||
{
|
{
|
||||||
queries, buf, std::move(opts)
|
queries, buf, std::move(opts)
|
||||||
|
|
Loading…
Reference in a new issue