]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Minor] Add method to iterate through all headers
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Thu, 14 Oct 2021 16:57:08 +0000 (17:57 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Thu, 14 Oct 2021 16:57:08 +0000 (17:57 +0100)
src/libmime/mime_headers.c
src/libmime/mime_headers.h

index 3deb26a086c1d4b4b05a2b827e61c53b21882ed6..76ae1770a82333b0b6569c782af82a779b8a8d33 100644 (file)
@@ -958,6 +958,22 @@ rspamd_mime_headers_count (struct rspamd_mime_headers_table *hdrs)
        return 0;
 }
 
+bool
+rspamd_mime_headers_foreach(const struct rspamd_mime_headers_table *hdrs,
+                                                                rspamd_hdr_traverse_func_t func, void *ud)
+{
+       const gchar *name;
+       struct rspamd_mime_header *hdr;
+
+       kh_foreach(&hdrs->htb, name, hdr, {
+               if (!func(name, hdr, ud)) {
+                       return false;
+               }
+       });
+
+       return true;
+}
+
 static void
 rspamd_message_headers_dtor (struct rspamd_mime_headers_table *hdrs)
 {
index 7174f9e8f695fe77e067a8d18f6520c1023887c9..43dd26e877f978a6060efa2fcff9e6c87f3606eb 100644 (file)
@@ -167,6 +167,16 @@ struct rspamd_mime_headers_table* rspamd_message_headers_new (void);
  */
 gsize rspamd_mime_headers_count (struct rspamd_mime_headers_table *hdrs);
 
+typedef bool(rspamd_hdr_traverse_func_t)(const gchar *, const struct rspamd_mime_header *, void *);
+/**
+ * Traverse all headers in a table
+ * @param func
+ * @param ud
+ * @return
+ */
+bool rspamd_mime_headers_foreach(const struct rspamd_mime_headers_table *,
+               rspamd_hdr_traverse_func_t func, void *ud);
+
 /**
  * Strip rfc822 CFWS sequences from a string in place
  * @param input input