summaryrefslogtreecommitdiffstats
path: root/src/libserver
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2019-07-10 15:01:41 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2019-07-12 15:18:17 +0100
commit9aa104f6a709198527538c6553a0a96db1ecc5e9 (patch)
treeb5973624d406f88ea4c179d2bc6e7b17965572d8 /src/libserver
parent4c1013fbdd26d37a31ac5895e0ecefb248fa4c6d (diff)
downloadrspamd-9aa104f6a709198527538c6553a0a96db1ecc5e9.tar.gz
rspamd-9aa104f6a709198527538c6553a0a96db1ecc5e9.zip
[Project] Start mime structures refactoring
Diffstat (limited to 'src/libserver')
-rw-r--r--src/libserver/dkim.c4
-rw-r--r--src/libserver/protocol.c2
-rw-r--r--src/libserver/task.c8
-rw-r--r--src/libserver/task.h23
4 files changed, 9 insertions, 28 deletions
diff --git a/src/libserver/dkim.c b/src/libserver/dkim.c
index 9386c5cdc..c0ea29f08 100644
--- a/src/libserver/dkim.c
+++ b/src/libserver/dkim.c
@@ -2175,7 +2175,7 @@ rspamd_dkim_canonize_header (struct rspamd_dkim_common_ctx *ctx,
if (ar) {
/* Check uniqueness of the header */
rh = g_ptr_array_index (ar, 0);
- if ((rh->type & RSPAMD_HEADER_UNIQUE) && ar->len > 1) {
+ if ((rh->flags & RSPAMD_HEADER_UNIQUE) && ar->len > 1) {
guint64 random_cookie = ottery_rand_uint64 ();
msg_warn_dkim ("header %s is intended to be unique by"
@@ -2210,7 +2210,7 @@ rspamd_dkim_canonize_header (struct rspamd_dkim_common_ctx *ctx,
(gint)rh->raw_len, rh->raw_value);
}
else {
- if (ctx->is_sign && (rh->type & RSPAMD_HEADER_FROM)) {
+ if (ctx->is_sign && (rh->flags & RSPAMD_HEADER_FROM)) {
/* Special handling of the From handling when rewrite is done */
gboolean has_rewrite = FALSE;
guint i;
diff --git a/src/libserver/protocol.c b/src/libserver/protocol.c
index bef7a0452..ddd072882 100644
--- a/src/libserver/protocol.c
+++ b/src/libserver/protocol.c
@@ -1409,6 +1409,7 @@ rspamd_protocol_http_reply (struct rspamd_http_message *msg,
gint flags = RSPAMD_PROTOCOL_DEFAULT;
struct rspamd_action *action;
+#if 0
/* Write custom headers */
g_hash_table_iter_init (&hiter, task->reply_headers);
while (g_hash_table_iter_next (&hiter, &h, &v)) {
@@ -1416,6 +1417,7 @@ rspamd_protocol_http_reply (struct rspamd_http_message *msg,
rspamd_http_message_add_header (msg, hn->begin, hv->begin);
}
+#endif
flags |= RSPAMD_PROTOCOL_URLS;
diff --git a/src/libserver/task.c b/src/libserver/task.c
index 04be61744..88ee730a3 100644
--- a/src/libserver/task.c
+++ b/src/libserver/task.c
@@ -130,14 +130,8 @@ rspamd_task_new (struct rspamd_worker *worker, struct rspamd_config *cfg,
rspamd_ftok_icase_equal, rspamd_fstring_mapped_ftok_free,
rspamd_request_header_dtor);
rspamd_mempool_add_destructor (new_task->task_pool,
- (rspamd_mempool_destruct_t) g_hash_table_unref,
- new_task->request_headers);
- new_task->reply_headers = g_hash_table_new_full (rspamd_ftok_icase_hash,
- rspamd_ftok_icase_equal, rspamd_fstring_mapped_ftok_free,
- rspamd_fstring_mapped_ftok_free);
- rspamd_mempool_add_destructor (new_task->task_pool,
(rspamd_mempool_destruct_t) g_hash_table_unref,
- new_task->reply_headers);
+ new_task->request_headers);
rspamd_mempool_add_destructor (new_task->task_pool,
(rspamd_mempool_destruct_t) g_hash_table_unref,
new_task->raw_headers);
diff --git a/src/libserver/task.h b/src/libserver/task.h
index ac55dd910..00caf3ab6 100644
--- a/src/libserver/task.h
+++ b/src/libserver/task.h
@@ -134,6 +134,7 @@ enum rspamd_task_stage {
struct rspamd_email_address;
struct rspamd_lang_detector;
enum rspamd_newlines_type;
+struct rspamd_message;
/**
* Worker task structure
@@ -147,15 +148,12 @@ struct rspamd_task {
gulong message_len; /**< Message length */
gchar *helo; /**< helo header value */
gchar *queue_id; /**< queue id if specified */
- const gchar *message_id; /**< message id */
rspamd_inet_addr_t *from_addr; /**< from addr for a task */
rspamd_inet_addr_t *client_addr; /**< address of connected socket */
gchar *deliver_to; /**< address to deliver */
gchar *user; /**< user to deliver */
- gchar *subject; /**< subject (for non-mime) */
const gchar *hostname; /**< hostname reported by MTA */
GHashTable *request_headers; /**< HTTP headers in a request */
- GHashTable *reply_headers; /**< Custom reply headers */
struct {
const gchar *begin;
gsize len;
@@ -163,29 +161,14 @@ struct rspamd_task {
} msg; /**< message buffer */
struct rspamd_http_connection *http_conn; /**< HTTP server connection */
struct rspamd_async_session *s; /**< async session object */
- GPtrArray *parts; /**< list of parsed parts */
- GPtrArray *text_parts; /**< list of text parts */
- struct {
- const gchar *begin;
- gsize len;
- const gchar *body_start;
- } raw_headers_content; /**< list of raw headers */
- GPtrArray *received; /**< list of received headers */
- GHashTable *urls; /**< list of parsed urls */
- GHashTable *emails; /**< list of parsed emails */
- GHashTable *raw_headers; /**< list of raw headers */
- GQueue *headers_order; /**< order of raw headers */
struct rspamd_metric_result *result; /**< Metric result */
GHashTable *lua_cache; /**< cache of lua objects */
GPtrArray *tokens; /**< statistics tokens */
GArray *meta_words; /**< rspamd_stat_token_t produced from meta headers
(e.g. Subject) */
- GPtrArray *rcpt_mime;
GPtrArray *rcpt_envelope; /**< array of rspamd_email_address */
- GPtrArray *from_mime;
struct rspamd_email_address *from_envelope;
- enum rspamd_newlines_type nlines_type; /**< type of newlines (detected on most of headers */
ucl_object_t *messages; /**< list of messages that would be reported */
struct rspamd_re_runtime *re_rt; /**< regexp runtime */
@@ -215,6 +198,7 @@ struct rspamd_task {
const gchar *classifier; /**< Classifier to learn (if needed) */
struct rspamd_lang_detector *lang_det; /**< Languages detector */
+ struct rspamd_message *message;
guchar digest[16];
};
@@ -252,7 +236,8 @@ gboolean rspamd_task_fin (void *arg);
* @return
*/
gboolean rspamd_task_load_message (struct rspamd_task *task,
- struct rspamd_http_message *msg, const gchar *start, gsize len);
+ struct rspamd_http_message *msg,
+ const gchar *start, gsize len);
/**
* Process task