]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] Output flags stat per key
authorVsevolod Stakhov <vsevolod@rspamd.com>
Mon, 8 May 2023 18:31:43 +0000 (19:31 +0100)
committerVsevolod Stakhov <vsevolod@rspamd.com>
Mon, 8 May 2023 18:31:43 +0000 (19:31 +0100)
src/fuzzy_storage.c

index 37a0efe1e7b14386d84f9ff4d7cea24f895f5461..dac76e6a4fe053c2a18319b68674be46310648cf 100644 (file)
@@ -1927,7 +1927,7 @@ rspamd_fuzzy_storage_reload (struct rspamd_main *rspamd_main,
 }
 
 static ucl_object_t *
-rspamd_fuzzy_storage_stat_key (struct fuzzy_key_stat *key_stat)
+rspamd_fuzzy_storage_stat_key (const struct fuzzy_key_stat *key_stat)
 {
        ucl_object_t *res;
 
@@ -1990,6 +1990,19 @@ rspamd_fuzzy_stat_to_ucl (struct rspamd_fuzzy_storage_ctx *ctx, gboolean ip_stat
                                ucl_object_insert_key (elt, ip_elt, "ips", 0, false);
                        }
 
+                       int flag;
+                       struct fuzzy_key_stat *flag_stat;
+                       ucl_object_t *flags_ucl = ucl_object_typed_new(UCL_OBJECT);
+
+                       kh_foreach_key_value_ptr(fuzzy_key->flags_stat, flag, flag_stat, {
+                               char intbuf[16];
+                               rspamd_snprintf(intbuf, sizeof(intbuf), "%d", flag);
+                               ucl_object_insert_key (flags_ucl, rspamd_fuzzy_storage_stat_key (flag_stat),
+                                       intbuf, 0, true);
+                       });
+
+                       ucl_object_insert_key (elt, flags_ucl, "flags", 0, false);
+
                        ucl_object_insert_key (elt,
                                rspamd_keypair_to_ucl (fuzzy_key->key, RSPAMD_KEYPAIR_DUMP_NO_SECRET|RSPAMD_KEYPAIR_DUMP_FLATTENED),
                                "keypair", 0, false);