From: Vsevolod Stakhov Date: Thu, 21 Oct 2021 14:37:04 +0000 (+0100) Subject: [Minor] Agree on types between dump and backend X-Git-Tag: 3.1~12 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a8e0f75aa6df80fd27ea25f40307f3892a991c8f;p=thirdparty%2Frspamd.git [Minor] Agree on types between dump and backend --- diff --git a/lualib/rspamadm/statistics_dump.lua b/lualib/rspamadm/statistics_dump.lua index 33b2a3cc58..aa461a92a9 100644 --- a/lualib/rspamadm/statistics_dump.lua +++ b/lualib/rspamadm/statistics_dump.lua @@ -266,7 +266,7 @@ local function dump_pattern(conn, pattern, opts, out, key) if opts.cdb then table.insert(out[key].elts, { key = rspamd_i64.fromstring(string.match(d.key, '%d+')), - value = rspamd_util.pack(' static inline auto -cdb_get_key_as_double(struct cdb *cdb, T key) -> std::optional +cdb_get_key_as_int64(struct cdb *cdb, T key) -> std::optional { auto pos = cdb_find(cdb, (void *)&key, sizeof(key)); @@ -153,8 +153,8 @@ cdb_get_key_as_double(struct cdb *cdb, T key) -> std::optional auto vpos = cdb_datapos(cdb); auto vlen = cdb_datalen(cdb); - if (vlen == sizeof(double)) { - double ret; + if (vlen == sizeof(std::int64_t)) { + std::int64_t ret; cdb_read(cdb, (void *)&ret, vlen, vpos); return ret; @@ -206,13 +206,12 @@ ro_backend::load_cdb() -> tl::expected auto check_key = [&](const char *key, std::uint64_t &target) -> tl::expected { memcpy((void *)&cdb_key, key, sizeof(cdb_key)); - auto maybe_value = cdb_get_key_as_double(db.get(), cdb_key); + auto maybe_value = cdb_get_key_as_int64(db.get(), cdb_key); if (!maybe_value) { return tl::make_unexpected(fmt::format("missing {} key", key)); } - // Convert from double to int target = (std::uint64_t)maybe_value.value(); return true;