mirror of
https://github.com/matrix-construct/construct
synced 2024-11-26 00:32:35 +01:00
ircd:Ⓜ️:keys: Improve key query and cache loop.
This commit is contained in:
parent
c2f86a8094
commit
37760fe251
2 changed files with 8 additions and 20 deletions
|
@ -59,7 +59,7 @@ struct ircd::m::keys
|
|||
|
||||
static void get(const string_view &server_name, const closure &);
|
||||
static void 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 void query(const string_view &query_server, const queries &, const closure_bool &);
|
||||
|
||||
using super_type::tuple;
|
||||
using super_type::operator=;
|
||||
|
|
|
@ -140,7 +140,7 @@ ircd::m::keys_query_timeout
|
|||
{ "default", 20000L }
|
||||
};
|
||||
|
||||
bool
|
||||
void
|
||||
IRCD_MODULE_EXPORT
|
||||
ircd::m::keys::query(const string_view &query_server,
|
||||
const queries &queries,
|
||||
|
@ -169,36 +169,24 @@ try
|
|||
request
|
||||
};
|
||||
|
||||
for(const json::object &key_ : response) try
|
||||
for(const json::object &key : response) try
|
||||
{
|
||||
const m::keys &key
|
||||
{
|
||||
key_
|
||||
};
|
||||
verify(m::keys{key});
|
||||
if(!closure(key))
|
||||
continue;
|
||||
|
||||
verify(key);
|
||||
log::debug
|
||||
{
|
||||
m::log, "Verified keys for '%s' from '%s'",
|
||||
at<"server_name"_>(key),
|
||||
query_server
|
||||
};
|
||||
|
||||
if(!closure(key_))
|
||||
return false;
|
||||
cache::set(key);
|
||||
}
|
||||
catch(const std::exception &e)
|
||||
{
|
||||
log::derror
|
||||
{
|
||||
"Failed to verify keys for '%s' from '%s' :%s",
|
||||
key_.get("server_name"),
|
||||
key.get("server_name"),
|
||||
query_server,
|
||||
e.what()
|
||||
};
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
catch(const ctx::timeout &e)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue