diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2019-11-21 12:35:58 +0000 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2019-11-21 12:35:58 +0000 |
commit | 3c772979bbcfee948054e853aa8325b8e43ac944 (patch) | |
tree | 8a25b12e7fa3f5d1389b004cd4a131ca717dd26c /src/libmime/message.h | |
parent | cb5fa030df56eb424d832b99009816989072124c (diff) | |
download | rspamd-3c772979bbcfee948054e853aa8325b8e43ac944.tar.gz rspamd-3c772979bbcfee948054e853aa8325b8e43ac944.zip |
[Rework] Change mime part specifics handling
Diffstat (limited to 'src/libmime/message.h')
-rw-r--r-- | src/libmime/message.h | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/src/libmime/message.h b/src/libmime/message.h index f3a8315fc..7f6ea86dd 100644 --- a/src/libmime/message.h +++ b/src/libmime/message.h @@ -30,14 +30,25 @@ struct rspamd_image; struct rspamd_archive; enum rspamd_mime_part_flags { - RSPAMD_MIME_PART_TEXT = (1 << 0), RSPAMD_MIME_PART_ATTACHEMENT = (1 << 1), - RSPAMD_MIME_PART_IMAGE = (1 << 2), - RSPAMD_MIME_PART_ARCHIVE = (1 << 3), RSPAMD_MIME_PART_BAD_CTE = (1 << 4), - RSPAMD_MIME_PART_MISSING_CTE = (1 << 5) + RSPAMD_MIME_PART_MISSING_CTE = (1 << 5), }; +enum rspamd_mime_part_type { + RSPAMD_MIME_PART_UNDEFINED = 0, + RSPAMD_MIME_PART_MULTIPART, + RSPAMD_MIME_PART_MESSAGE, + RSPAMD_MIME_PART_TEXT, + RSPAMD_MIME_PART_ARCHIVE, + RSPAMD_MIME_PART_IMAGE, + RSPAMD_MIME_PART_CUSTOM_LUA +}; + +#define IS_PART_MULTIPART(part) ((part) && ((part)->part_type == RSPAMD_MIME_PART_MULTIPART)) +#define IS_PART_TEXT(part) ((part) && ((part)->part_type == RSPAMD_MIME_PART_TEXT)) +#define IS_PART_MESSAGE(part) ((part) &&((part)->part_type == RSPAMD_MIME_PART_MESSAGE)) + enum rspamd_cte { RSPAMD_CTE_UNKNOWN = 0, RSPAMD_CTE_7BIT = 1, @@ -72,6 +83,7 @@ struct rspamd_mime_part { enum rspamd_cte cte; guint flags; + enum rspamd_mime_part_type part_type; guint id; union { @@ -79,6 +91,7 @@ struct rspamd_mime_part { struct rspamd_mime_text_part *txt; struct rspamd_image *img; struct rspamd_archive *arch; + gint lua_ref; } specific; guchar digest[rspamd_cryptobox_HASHBYTES]; @@ -153,6 +166,7 @@ struct rspamd_message { GHashTable *emails; /**< list of parsed emails */ struct rspamd_mime_headers_table *raw_headers; /**< list of raw headers */ struct rspamd_mime_header *headers_order; /**< order of raw headers */ + struct rspamd_task *task; GPtrArray *rcpt_mime; GPtrArray *from_mime; guchar digest[16]; |