]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Project] Rework plugins
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Thu, 11 Jul 2019 12:43:25 +0000 (13:43 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 12 Jul 2019 14:18:17 +0000 (15:18 +0100)
src/CMakeLists.txt
src/libmime/message.h
src/libserver/dkim.c
src/libserver/dns.c
src/libserver/protocol.c
src/libserver/roll_history.c
src/libserver/rspamd_symcache.c
src/libserver/spf.c
src/libserver/task.c

index 03fa61600c5531c392b4f2785bf2cc3d01cacf82..19945f62d858b41add4b8ec4a0ade0fb3fe753da 100644 (file)
@@ -164,10 +164,10 @@ ELSE()
        ADD_LIBRARY(rspamd-server SHARED
                        ${RSPAMD_CRYPTOBOX}
                        ${RSPAMD_UTIL}
-                       ${RSPAMD_LUA}
                        ${RSPAMD_SERVER}
                        ${RSPAMD_STAT}
                        ${RSPAMD_MIME}
+                       ${RSPAMD_LUA}
                        ${CMAKE_CURRENT_BINARY_DIR}/modules.c
                        ${PLUGINSSRC}
                        "${RAGEL_ragel_smtp_addr_OUTPUTS}"
index 880645c0a79bb682c8e9f2e55a9d81b316fc8b7f..9cf67ba82f7265af5a5e33a8e6101c49108aae04 100644 (file)
@@ -159,7 +159,7 @@ struct rspamd_message {
 #else
 #define MESSAGE_FIELD(task, field)
        ((!(task)->message) ? \
-       (msg_err_task("no message when getting field %s", #field), g_assert(0)) : \
+       (__typeof__((task)->message->field))(msg_err_task("no message when getting field %s", #field), g_assert(0), NULL) : \
        ((task)->message->field))
 #endif
 
index c0ea29f08ebadbe3487de304a9197e4fe97819cd..1cc72e65d756602cc267846c2afc98f788a30839 100644 (file)
@@ -2165,23 +2165,34 @@ rspamd_dkim_canonize_header (struct rspamd_dkim_common_ctx *ctx,
        const gchar *dkim_header,
        const gchar *dkim_domain)
 {
-       struct rspamd_mime_header *rh;
-       gint rh_num = 0;
-       GPtrArray *ar;
+       struct rspamd_mime_header *rh, *cur, *sel = NULL;
+       gint hdr_cnt = 0;
 
        if (dkim_header == NULL) {
-               ar = g_hash_table_lookup (task->raw_headers, header_name);
+               rh = rspamd_message_get_header_array (task, header_name);
 
-               if (ar) {
+               if (rh) {
                        /* Check uniqueness of the header */
-                       rh = g_ptr_array_index (ar, 0);
-                       if ((rh->flags & RSPAMD_HEADER_UNIQUE) && ar->len > 1) {
+                       for (cur = rh->prev; ; cur = cur->prev) {
+                               hdr_cnt ++;
+
+                               if (hdr_cnt == count) {
+                                       sel = cur;
+                               }
+
+                               if (cur->next == NULL) {
+                                       /* Cycle */
+                                       break;
+                               }
+                       }
+
+                       if ((rh->flags & RSPAMD_HEADER_UNIQUE) && hdr_cnt > 1) {
                                guint64 random_cookie = ottery_rand_uint64 ();
 
                                msg_warn_dkim ("header %s is intended to be unique by"
                                                " email standards, but we have %d headers of this"
                                                " type, artificially break DKIM check", header_name,
-                                               ar->len);
+                                               hdr_cnt);
                                rspamd_dkim_hash_update (ctx->headers_hash,
                                                (const gchar *)&random_cookie,
                                                sizeof (random_cookie));
@@ -2189,11 +2200,7 @@ rspamd_dkim_canonize_header (struct rspamd_dkim_common_ctx *ctx,
                                return FALSE;
                        }
 
-                       if (ar->len > count) {
-                               /* Set skip count */
-                               rh_num = ar->len - count - 1;
-                       }
-                       else {
+                       if (hdr_cnt <= count) {
                                /*
                                 * If DKIM has less headers requested than there are in a
                                 * message, then it's fine, it allows adding extra headers
@@ -2201,22 +2208,23 @@ rspamd_dkim_canonize_header (struct rspamd_dkim_common_ctx *ctx,
                                return TRUE;
                        }
 
-                       rh = g_ptr_array_index (ar, rh_num);
+                       /* Selected header must be non-null if previous condition is false */
+                       g_assert (sel != NULL);
 
                        if (ctx->header_canon_type == DKIM_CANON_SIMPLE) {
-                               rspamd_dkim_hash_update (ctx->headers_hash, rh->raw_value,
-                                               rh->raw_len);
+                               rspamd_dkim_hash_update (ctx->headers_hash, sel->raw_value,
+                                               sel->raw_len);
                                msg_debug_dkim ("update signature with header: %*s",
-                                               (gint)rh->raw_len, rh->raw_value);
+                                               (gint)sel->raw_len, sel->raw_value);
                        }
                        else {
-                               if (ctx->is_sign && (rh->flags & RSPAMD_HEADER_FROM)) {
+                               if (ctx->is_sign && (sel->flags & RSPAMD_HEADER_FROM)) {
                                        /* Special handling of the From handling when rewrite is done */
                                        gboolean has_rewrite = FALSE;
                                        guint i;
                                        struct rspamd_email_address *addr;
 
-                                       PTR_ARRAY_FOREACH (task->from_mime, i, addr) {
+                                       PTR_ARRAY_FOREACH (MESSAGE_FIELD (task, from_mime), i, addr) {
                                                if ((addr->flags & RSPAMD_EMAIL_ADDR_ORIGINAL)
                                                        && !(addr->flags & RSPAMD_EMAIL_ADDR_ALIASED)) {
                                                        has_rewrite = TRUE;
@@ -2224,7 +2232,7 @@ rspamd_dkim_canonize_header (struct rspamd_dkim_common_ctx *ctx,
                                        }
 
                                        if (has_rewrite) {
-                                               PTR_ARRAY_FOREACH (task->from_mime, i, addr) {
+                                               PTR_ARRAY_FOREACH (MESSAGE_FIELD (task, from_mime), i, addr) {
                                                        if (!(addr->flags & RSPAMD_EMAIL_ADDR_ORIGINAL)) {
                                                                if (!rspamd_dkim_canonize_header_relaxed (ctx, addr->raw,
                                                                                header_name, FALSE)) {
@@ -2237,7 +2245,7 @@ rspamd_dkim_canonize_header (struct rspamd_dkim_common_ctx *ctx,
                                        }
                                }
 
-                               if (!rspamd_dkim_canonize_header_relaxed (ctx, rh->value,
+                               if (!rspamd_dkim_canonize_header_relaxed (ctx, sel->value,
                                                header_name, FALSE)) {
                                        return FALSE;
                                }
@@ -2248,17 +2256,15 @@ rspamd_dkim_canonize_header (struct rspamd_dkim_common_ctx *ctx,
                /* For signature check just use the saved dkim header */
                if (ctx->header_canon_type == DKIM_CANON_SIMPLE) {
                        /* We need to find our own signature and use it */
-                       guint i;
+                       rh = rspamd_message_get_header_array (task, header_name);
 
-                       ar = g_hash_table_lookup (task->raw_headers, header_name);
-
-                       if (ar) {
+                       if (rh) {
                                /* We need to find our own signature */
                                if (!dkim_domain) {
                                        return FALSE;
                                }
 
-                               PTR_ARRAY_FOREACH (ar, i, rh) {
+                               DL_FOREACH (rh, cur) {
                                        guint64 th = rspamd_cryptobox_fast_hash (rh->decoded,
                                                        strlen (rh->decoded), rspamd_hash_seed ());
 
@@ -2348,7 +2354,8 @@ rspamd_dkim_check (rspamd_dkim_context_t *ctx,
 
        /* First of all find place of body */
        body_end = task->msg.begin + task->msg.len;
-       body_start = task->raw_headers_content.body_start;
+
+       body_start = MESSAGE_FIELD (task, raw_headers_content).body_start;
 
        res = rspamd_mempool_alloc0 (task->task_pool, sizeof (*res));
        res->ctx = ctx;
@@ -2948,7 +2955,7 @@ rspamd_dkim_sign (struct rspamd_task *task, const gchar *selector,
 
        /* First of all find place of body */
        body_end = task->msg.begin + task->msg.len;
-       body_start = task->raw_headers_content.body_start;
+       body_start = MESSAGE_FIELD (task, raw_headers_content).body_start;
 
        if (len > 0) {
                ctx->common.len = len;
@@ -3020,6 +3027,8 @@ rspamd_dkim_sign (struct rspamd_task *task, const gchar *selector,
 
        /* Now canonize headers */
        for (i = 0; i < ctx->common.hlist->len; i++) {
+               struct rspamd_mime_header *rh, *cur;
+
                dh = g_ptr_array_index (ctx->common.hlist, i);
 
                /* We allow oversigning if dh->count > number of headers with this name */
@@ -3027,25 +3036,25 @@ rspamd_dkim_sign (struct rspamd_task *task, const gchar *selector,
 
                if (hstat.s.flags & RSPAMD_DKIM_FLAG_OVERSIGN) {
                        /* Do oversigning */
-                       GPtrArray *ar;
                        guint count = 0;
 
-                       ar = g_hash_table_lookup (task->raw_headers, dh->name);
-
-                       if (ar) {
-                               count = ar->len;
-                       }
+                       rh = rspamd_message_get_header_array (task, dh->name);
 
-                       for (j = 0; j < count; j ++) {
-                               /* Sign all existing headers */
-                               rspamd_dkim_canonize_header (&ctx->common, task, dh->name, j,
-                                               NULL, NULL);
+                       if (rh) {
+                               DL_FOREACH (rh, cur) {
+                                       /* Sign all existing headers */
+                                       rspamd_dkim_canonize_header (&ctx->common, task, dh->name,
+                                                       count,
+                                                       NULL, NULL);
+                                       count++;
+                               }
                        }
 
                        /* Now add one more entry to oversign */
                        if (count > 0 || !(hstat.s.flags & RSPAMD_DKIM_FLAG_OVERSIGN_EXISTING)) {
                                cur_len = (strlen (dh->name) + 1) * (count + 1);
                                headers_len += cur_len;
+
                                if (headers_len > 70 && i > 0 && i < ctx->common.hlist->len - 1) {
                                        rspamd_printf_gstring (hdr, "  ");
                                        headers_len = cur_len;
@@ -3057,7 +3066,9 @@ rspamd_dkim_sign (struct rspamd_task *task, const gchar *selector,
                        }
                }
                else {
-                       if (g_hash_table_lookup (task->raw_headers, dh->name)) {
+                       rh = rspamd_message_get_header_array (task, dh->name);
+
+                       if (rh) {
                                if (hstat.s.count > 0) {
 
                                        cur_len = (strlen (dh->name) + 1) * (hstat.s.count);
@@ -3166,7 +3177,7 @@ rspamd_dkim_sign (struct rspamd_task *task, const gchar *selector,
        }
        else {
                b64_data = rspamd_encode_base64_fold (sig_buf, sig_len, 70, NULL,
-                               task->nlines_type);
+                               MESSAGE_FIELD (task, nlines_type));
        }
 
        rspamd_printf_gstring (hdr, "%s", b64_data);
index 5277e2f6c7dc1046beb8703c3cb51f28e44da609..3b8770a7b0ba5feb902fda1d6a53240f370da7c1 100644 (file)
@@ -206,8 +206,8 @@ make_dns_request_task_common (struct rspamd_task *task,
                }
 
                if (!forced && task->dns_requests >= task->cfg->dns_max_requests) {
-                       msg_info_task ("<%s> stop resolving on reaching %ud requests",
-                                       task->message_id, task->dns_requests);
+                       msg_info_task ("stop resolving on reaching %ud requests",
+                                       task->dns_requests);
                }
 
                return TRUE;
index ddd072882b8fde6f7701d3e2a16e315c00af3ac8..ff332d1ccb59fa3db0617f52f68f3f1d19d7e21a 100644 (file)
@@ -478,10 +478,6 @@ rspamd_protocol_handle_headers (struct rspamd_task *task,
                                break;
                        case 's':
                        case 'S':
-                               IF_HEADER (SUBJECT_HEADER) {
-                                       msg_debug_protocol ("read subject header, value: %V", hv);
-                                       task->subject = rspamd_mempool_ftokdup (task->task_pool, hv_tok);
-                               }
                                IF_HEADER (SETTINGS_ID_HEADER) {
                                        msg_debug_protocol ("read settings-id header, value: %V", hv);
                                        task->settings_elt = rspamd_config_find_settings_name_ref (
@@ -862,7 +858,7 @@ urls_protocol_cb (gpointer key, gpointer value, gpointer ud)
                }
 
                msg_notice_task_encrypted ("<%s> %s: %*s; ip: %s; URL: %*s",
-                       task->message_id,
+                       MESSAGE_FIELD (task, message_id),
                        has_user ? "user" : "from",
                        len, user_field,
                        rspamd_inet_address_to_string (task->from_addr),
@@ -939,7 +935,7 @@ rspamd_protocol_rewrite_subject (struct rspamd_task *task)
        }
 
        p = c;
-       s = task->subject;
+       s = MESSAGE_FIELD (task, subject);
 
        if (s) {
                slen = strlen (s);
@@ -1112,7 +1108,7 @@ rspamd_metric_result_ucl (struct rspamd_task *task,
                        sobj = rspamd_metric_symbol_ucl (task, sym);
                        ucl_object_insert_key (obj, sobj, sym->name, 0, false);
                }
-       });
+       })
 
        if (task->cmd == CMD_CHECK_V2) {
                ucl_object_insert_key (top, obj, "symbols", 0, false);
@@ -1290,15 +1286,15 @@ rspamd_protocol_write_ucl (struct rspamd_task *task,
        }
 
        if (flags & RSPAMD_PROTOCOL_URLS) {
-               if (g_hash_table_size (task->urls) > 0) {
+               if (g_hash_table_size (MESSAGE_FIELD (task, urls)) > 0) {
                        ucl_object_insert_key (top,
-                                       rspamd_urls_tree_ucl (task->urls, task),
+                                       rspamd_urls_tree_ucl (MESSAGE_FIELD (task, urls), task),
                                        "urls", 0, false);
                }
 
-               if (g_hash_table_size (task->emails) > 0) {
+               if (g_hash_table_size (MESSAGE_FIELD (task, emails)) > 0) {
                        ucl_object_insert_key (top,
-                                       rspamd_emails_tree_ucl (task->emails, task),
+                                       rspamd_emails_tree_ucl (MESSAGE_FIELD (task, emails), task),
                                        "emails", 0, false);
                }
        }
@@ -1310,7 +1306,8 @@ rspamd_protocol_write_ucl (struct rspamd_task *task,
        }
 
        if (flags & RSPAMD_PROTOCOL_BASIC) {
-               ucl_object_insert_key (top, ucl_object_fromstring (task->message_id),
+               ucl_object_insert_key (top,
+                               ucl_object_fromstring (MESSAGE_FIELD (task, message_id)),
                                "message-id", 0, false);
                ucl_object_insert_key (top,
                                ucl_object_fromdouble (task->time_real_finish - task->task_timestamp),
@@ -1340,7 +1337,9 @@ rspamd_protocol_write_ucl (struct rspamd_task *task,
                                        }
                                        else {
                                                folded_header = rspamd_header_value_fold ("DKIM-Signature",
-                                                               dkim_sig->str, 80, task->nlines_type, NULL);
+                                                               dkim_sig->str, 80,
+                                                               MESSAGE_FIELD (task, nlines_type),
+                                                               NULL);
                                        }
 
                                        ucl_array_append (ar,
@@ -1365,7 +1364,8 @@ rspamd_protocol_write_ucl (struct rspamd_task *task,
                                }
                                else {
                                        folded_header = rspamd_header_value_fold ("DKIM-Signature",
-                                                       dkim_sig->str, 80, task->nlines_type, NULL);
+                                                       dkim_sig->str, 80, MESSAGE_FIELD (task, nlines_type),
+                                                       NULL);
                                }
 
                                ucl_object_insert_key (top,
@@ -1401,15 +1401,17 @@ rspamd_protocol_http_reply (struct rspamd_http_message *msg,
                struct rspamd_task *task, ucl_object_t **pobj)
 {
        struct rspamd_metric_result *metric_res;
-       GHashTableIter hiter;
        const struct rspamd_re_cache_stat *restat;
-       gpointer h, v;
+
        ucl_object_t *top = NULL;
        rspamd_fstring_t *reply;
        gint flags = RSPAMD_PROTOCOL_DEFAULT;
        struct rspamd_action *action;
 
+       /* Removed in 2.0 */
 #if 0
+       GHashTableIter hiter;
+       gpointer h, v;
        /* Write custom headers */
        g_hash_table_iter_init (&hiter, task->reply_headers);
        while (g_hash_table_iter_next (&hiter, &h, &v)) {
@@ -1789,7 +1791,8 @@ rspamd_protocol_write_reply (struct rspamd_task *task, ev_tstamp timeout)
        msg = rspamd_http_new_message (HTTP_RESPONSE);
 
        if (rspamd_http_connection_is_encrypted (task->http_conn)) {
-               msg_info_protocol ("<%s> writing encrypted reply", task->message_id);
+               msg_info_protocol ("<%s> writing encrypted reply",
+                               MESSAGE_FIELD (task, message_id));
        }
 
        if (!RSPAMD_TASK_IS_JSON (task)) {
index c702463831b325f311a019ae9395cdb6204c9d79..ee69d59d38e33da777081aee23ab141f147bfbc2 100644 (file)
@@ -15,6 +15,7 @@
  */
 #include "config.h"
 #include "rspamd.h"
+#include "libmime/message.h"
 #include "lua/lua_common.h"
 #include "unix-std.h"
 #include "cfg_file_private.h"
@@ -139,7 +140,7 @@ rspamd_roll_history_update (struct roll_history *history,
        row->timestamp = task->task_timestamp;
 
        /* Strings */
-       rspamd_strlcpy (row->message_id, task->message_id,
+       rspamd_strlcpy (row->message_id, MESSAGE_FIELD (task, message_id),
                sizeof (row->message_id));
        if (task->user) {
                rspamd_strlcpy (row->user, task->user, sizeof (row->user));
index 3de339654f13ab010832e973c770dd28ff694931..2acff7e6d72bae5655ceb623ea5b0d73b76a9ecd 100644 (file)
@@ -1808,7 +1808,7 @@ rspamd_symcache_process_settings (struct rspamd_task *task,
        wl = ucl_object_lookup (task->settings, "whitelist");
 
        if (wl != NULL) {
-               msg_info_task ("<%s> is whitelisted", task->message_id);
+               msg_info_task ("task is whitelisted");
                task->flags |= RSPAMD_TASK_FLAG_SKIP;
                return TRUE;
        }
@@ -2015,9 +2015,9 @@ rspamd_symcache_process_symbols (struct rspamd_task *task,
 
                        if (!(item->type & SYMBOL_TYPE_FINE)) {
                                if (rspamd_symcache_metric_limit (task, checkpoint)) {
-                                       msg_info_task ("<%s> has already scored more than %.2f, so do "
+                                       msg_info_task ("task has already scored more than %.2f, so do "
                                                                   "not "
-                                                                  "plan more checks", task->message_id,
+                                                                  "plan more checks",
                                                        checkpoint->rs->score);
                                        all_done = TRUE;
                                        break;
index 70db4adbdf7cbfc3b0f00dfc94f27299950fcffb..220e7adfaa54cfb4fde877db32d2556ef8245e50 100644 (file)
@@ -121,8 +121,8 @@ struct spf_dns_cb {
     do {                                                        \
         if ((rec)->nested > SPF_MAX_NESTING ||                  \
             (rec)->dns_requests > SPF_MAX_DNS_REQUESTS) {       \
-            msg_info_spf ("<%s> spf recursion limit %d is reached, domain: %s", \
-                (rec)->task->message_id, (rec)->dns_requests,   \
+            msg_info_spf ("spf recursion limit %d is reached, domain: %s", \
+                (rec)->dns_requests,   \
                 (rec)->sender_domain);                          \
             return FALSE;                                       \
         }                                                       \
@@ -823,9 +823,8 @@ spf_record_dns_callback (struct rdns_reply *reply, gpointer arg)
                                if (!(cb->addr->flags & RSPAMD_SPF_FLAG_RESOLVED)) {
                                        cb->addr->flags |= RSPAMD_SPF_FLAG_PERMFAIL;
                                        msg_debug_spf (
-                                                       "<%s>: spf error for domain %s: cannot find MX"
+                                                       "spf error for domain %s: cannot find MX"
                                                        " record for %s: %s",
-                                                       task->message_id,
                                                        cb->rec->sender_domain,
                                                        cb->resolved->cur_domain,
                                                        rdns_strerror (reply->code));
@@ -836,9 +835,8 @@ spf_record_dns_callback (struct rdns_reply *reply, gpointer arg)
                                if (!(cb->addr->flags & RSPAMD_SPF_FLAG_RESOLVED)) {
                                        cb->addr->flags |= RSPAMD_SPF_FLAG_PERMFAIL;
                                        msg_debug_spf (
-                                                       "<%s>: spf error for domain %s: cannot resolve A"
+                                                       "spf error for domain %s: cannot resolve A"
                                                        " record for %s: %s",
-                                                       task->message_id,
                                                        cb->rec->sender_domain,
                                                        cb->resolved->cur_domain,
                                                        rdns_strerror (reply->code));
@@ -852,9 +850,8 @@ spf_record_dns_callback (struct rdns_reply *reply, gpointer arg)
                                if (!(cb->addr->flags & RSPAMD_SPF_FLAG_RESOLVED)) {
                                        cb->addr->flags |= RSPAMD_SPF_FLAG_PERMFAIL;
                                        msg_debug_spf (
-                                                       "<%s>: spf error for domain %s: cannot resolve AAAA"
+                                                       "spf error for domain %s: cannot resolve AAAA"
                                                        " record for %s: %s",
-                                                       task->message_id,
                                                        cb->rec->sender_domain,
                                                        cb->resolved->cur_domain,
                                                        rdns_strerror (reply->code));
@@ -866,9 +863,8 @@ spf_record_dns_callback (struct rdns_reply *reply, gpointer arg)
                        case SPF_RESOLVE_PTR:
                                if (!(cb->addr->flags & RSPAMD_SPF_FLAG_RESOLVED)) {
                                        msg_debug_spf (
-                                                       "<%s>: spf error for domain %s: cannot resolve PTR"
+                                                       "spf error for domain %s: cannot resolve PTR"
                                                        " record for %s: %s",
-                                                       task->message_id,
                                                        cb->rec->sender_domain,
                                                        cb->resolved->cur_domain,
                                                        rdns_strerror (reply->code));
@@ -881,9 +877,8 @@ spf_record_dns_callback (struct rdns_reply *reply, gpointer arg)
                                if (!(cb->addr->flags & RSPAMD_SPF_FLAG_RESOLVED)) {
                                        cb->addr->flags |= RSPAMD_SPF_FLAG_PERMFAIL;
                                        msg_debug_spf (
-                                                       "<%s>: spf error for domain %s: cannot resolve REDIRECT"
+                                                       "spf error for domain %s: cannot resolve REDIRECT"
                                                        " record for %s: %s",
-                                                       task->message_id,
                                                        cb->rec->sender_domain,
                                                        cb->resolved->cur_domain,
                                                        rdns_strerror (reply->code));
@@ -893,9 +888,8 @@ spf_record_dns_callback (struct rdns_reply *reply, gpointer arg)
                        case SPF_RESOLVE_INCLUDE:
                                if (!(cb->addr->flags & RSPAMD_SPF_FLAG_RESOLVED)) {
                                        msg_debug_spf (
-                                                       "<%s>: spf error for domain %s: cannot resolve INCLUDE"
+                                                       "spf error for domain %s: cannot resolve INCLUDE"
                                                        " record for %s: %s",
-                                                       task->message_id,
                                                        cb->rec->sender_domain,
                                                        cb->resolved->cur_domain,
                                                        rdns_strerror (reply->code));
@@ -908,9 +902,8 @@ spf_record_dns_callback (struct rdns_reply *reply, gpointer arg)
                        case SPF_RESOLVE_EXISTS:
                                if (!(cb->addr->flags & RSPAMD_SPF_FLAG_RESOLVED)) {
                                        msg_debug_spf (
-                                                       "<%s>: spf error for domain %s: cannot resolve EXISTS"
+                                                       "spf error for domain %s: cannot resolve EXISTS"
                                                        " record for %s: %s",
-                                                       task->message_id,
                                                        cb->rec->sender_domain,
                                                        cb->resolved->cur_domain,
                                                        rdns_strerror (reply->code));
@@ -922,9 +915,8 @@ spf_record_dns_callback (struct rdns_reply *reply, gpointer arg)
        else {
                cb->addr->flags |= RSPAMD_SPF_FLAG_TEMPFAIL;
                msg_info_spf (
-                               "<%s>: spf error for domain %s: cannot resolve %s DNS record for"
+                               "spf error for domain %s: cannot resolve %s DNS record for"
                                " %s: %s",
-                               task->message_id,
                                cb->rec->sender_domain,
                                rspamd_spf_dns_action_to_str (cb->cur_action),
                                cb->ptr_host,
@@ -1622,8 +1614,8 @@ expand_spf_macro (struct spf_record *rec, struct spf_resolved_element *resolved,
                        else {
                                /* Something unknown */
                                msg_info_spf (
-                                               "<%s>: spf error for domain %s: unknown spf element",
-                                               task->message_id, rec->sender_domain);
+                                               "spf error for domain %s: unknown spf element",
+                                               rec->sender_domain);
                                return begin;
                        }
                        p++;
@@ -1657,9 +1649,8 @@ expand_spf_macro (struct spf_record *rec, struct spf_resolved_element *resolved,
                                break;
                        default:
                                msg_info_spf (
-                                               "<%s>: spf error for domain %s: unknown or "
+                                               "spf error for domain %s: unknown or "
                                                                "unsupported spf macro %c in %s",
-                                               task->message_id,
                                                rec->sender_domain,
                                                *p,
                                                begin);
@@ -1740,8 +1731,8 @@ expand_spf_macro (struct spf_record *rec, struct spf_resolved_element *resolved,
                        else {
                                /* Something unknown */
                                msg_info_spf (
-                                               "<%s>: spf error for domain %s: unknown spf element",
-                                               task->message_id, rec->sender_domain);
+                                               "spf error for domain %s: unknown spf element",
+                                               rec->sender_domain);
                                return begin;
                        }
                        p++;
@@ -1836,9 +1827,8 @@ expand_spf_macro (struct spf_record *rec, struct spf_resolved_element *resolved,
                                break;
                        default:
                                msg_info_spf (
-                                               "<%s>: spf error for domain %s: unknown or "
+                                               "spf error for domain %s: unknown or "
                                                                "unsupported spf macro %c in %s",
-                                               task->message_id,
                                                rec->sender_domain,
                                                *p,
                                                begin);
@@ -1881,10 +1871,8 @@ expand_spf_macro (struct spf_record *rec, struct spf_resolved_element *resolved,
                                delim = *p;
                        }
                        else {
-                               msg_info_spf (
-                                               "<%s>: spf error for domain %s: unknown or "
+                               msg_info_spf ("spf error for domain %s: unknown or "
                                                                "unsupported spf macro %c in %s",
-                                               task->message_id,
                                                rec->sender_domain,
                                                *p,
                                                begin);
@@ -1939,9 +1927,8 @@ parse_spf_record (struct spf_record *rec, struct spf_resolved_element *resolved,
                                res = parse_spf_a (rec, resolved, addr);
                        }
                        else {
-                               msg_info_spf (
-                                               "<%s>: spf error for domain %s: bad spf command %s",
-                                               task->message_id, rec->sender_domain, begin);
+                               msg_info_spf ("spf error for domain %s: bad spf command %s",
+                                               rec->sender_domain, begin);
                        }
                        break;
                case 'i':
@@ -1959,9 +1946,8 @@ parse_spf_record (struct spf_record *rec, struct spf_resolved_element *resolved,
                                res = parse_spf_ip6 (rec, addr);
                        }
                        else {
-                               msg_info_spf (
-                                               "<%s>: spf error for domain %s: bad spf command %s",
-                                               task->message_id, rec->sender_domain, begin);
+                               msg_info_spf ("spf error for domain %s: bad spf command %s",
+                                               rec->sender_domain, begin);
                        }
                        break;
                case 'm':
@@ -1970,9 +1956,8 @@ parse_spf_record (struct spf_record *rec, struct spf_resolved_element *resolved,
                                res = parse_spf_mx (rec, resolved, addr);
                        }
                        else {
-                               msg_info_spf (
-                                               "<%s>: spf error for domain %s: bad spf command %s",
-                                               task->message_id, rec->sender_domain, begin);
+                               msg_info_spf ("spf error for domain %s: bad spf command %s",
+                                               rec->sender_domain, begin);
                        }
                        break;
                case 'p':
@@ -1982,9 +1967,8 @@ parse_spf_record (struct spf_record *rec, struct spf_resolved_element *resolved,
                                res = parse_spf_ptr (rec, resolved, addr);
                        }
                        else {
-                               msg_info_spf (
-                                               "<%s>: spf error for domain %s: bad spf command %s",
-                                               task->message_id, rec->sender_domain, begin);
+                               msg_info_spf ("spf error for domain %s: bad spf command %s",
+                                               rec->sender_domain, begin);
                        }
                        break;
                case 'e':
@@ -1998,9 +1982,8 @@ parse_spf_record (struct spf_record *rec, struct spf_resolved_element *resolved,
                                res = parse_spf_exists (rec, addr);
                        }
                        else {
-                               msg_info_spf (
-                                               "<%s>: spf error for domain %s: bad spf command %s",
-                                               task->message_id, rec->sender_domain, begin);
+                               msg_info_spf ("spf error for domain %s: bad spf command %s",
+                                               rec->sender_domain, begin);
                        }
                        break;
                case 'r':
@@ -2010,9 +1993,8 @@ parse_spf_record (struct spf_record *rec, struct spf_resolved_element *resolved,
                                res = parse_spf_redirect (rec, resolved, addr);
                        }
                        else {
-                               msg_info_spf (
-                                               "<%s>: spf error for domain %s: bad spf command %s",
-                                               task->message_id, rec->sender_domain, begin);
+                               msg_info_spf ("spf error for domain %s: bad spf command %s",
+                                               rec->sender_domain, begin);
                        }
                        break;
                case 'v':
@@ -2025,8 +2007,8 @@ parse_spf_record (struct spf_record *rec, struct spf_resolved_element *resolved,
                        }
                        break;
                default:
-                       msg_info_spf ("<%s>: spf error for domain %s: bad spf command %s",
-                                       task->message_id, rec->sender_domain, begin);
+                       msg_info_spf ("spf error for domain %s: bad spf command %s",
+                                       rec->sender_domain, begin);
                        break;
        }
 
@@ -2088,8 +2070,8 @@ start_spf_parse (struct spf_record *rec, struct spf_resolved_element *resolved,
                /* Skip one number of record, so no we are here spf2.0/ */
                begin += sizeof (SPF_VER2_STR);
                if (*begin != '/') {
-                       msg_info_spf ("<%s>: spf error for domain %s: sender id is invalid",
-                                       rec->task->message_id, rec->sender_domain);
+                       msg_info_spf ("spf error for domain %s: sender id is invalid",
+                                       rec->sender_domain);
                }
                else {
                        begin++;
@@ -2099,8 +2081,7 @@ start_spf_parse (struct spf_record *rec, struct spf_resolved_element *resolved,
        }
        else {
                msg_debug_spf (
-                               "<%s>: spf error for domain %s: bad spf record start: %*s",
-                               rec->task->message_id,
+                               "spf error for domain %s: bad spf record start: %*s",
                                rec->sender_domain,
                                (gint)len,
                                begin);
index 88ee730a337411baa861f3cd06e70aad365a54c6..3eeefb7f9732f891dcbbd9138afd9c58fa483aea 100644 (file)
@@ -123,44 +123,18 @@ rspamd_task_new (struct rspamd_worker *worker, struct rspamd_config *cfg,
                new_task->task_pool = pool;
        }
 
-       new_task->raw_headers = g_hash_table_new_full (rspamd_strcase_hash,
-                       rspamd_strcase_equal, NULL, rspamd_ptr_array_free_hard);
-       new_task->headers_order = g_queue_new ();
        new_task->request_headers = g_hash_table_new_full (rspamd_ftok_icase_hash,
                        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);
-       rspamd_mempool_add_destructor (new_task->task_pool,
-                       (rspamd_mempool_destruct_t) g_hash_table_unref,
-                       new_task->raw_headers);
-       rspamd_mempool_add_destructor (new_task->task_pool,
-                       (rspamd_mempool_destruct_t) g_queue_free,
-                       new_task->headers_order);
-       new_task->emails = g_hash_table_new (rspamd_email_hash, rspamd_emails_cmp);
-       rspamd_mempool_add_destructor (new_task->task_pool,
-                       (rspamd_mempool_destruct_t) g_hash_table_unref,
-                       new_task->emails);
-       new_task->urls = g_hash_table_new (rspamd_url_hash, rspamd_urls_cmp);
-       rspamd_mempool_add_destructor (new_task->task_pool,
-                       (rspamd_mempool_destruct_t) g_hash_table_unref,
-                       new_task->urls);
-       new_task->parts = g_ptr_array_sized_new (4);
-       rspamd_mempool_add_destructor (new_task->task_pool,
-                       rspamd_ptr_array_free_hard, new_task->parts);
-       new_task->text_parts = g_ptr_array_sized_new (2);
-       rspamd_mempool_add_destructor (new_task->task_pool,
-                       rspamd_ptr_array_free_hard, new_task->text_parts);
-       new_task->received = g_ptr_array_sized_new (8);
-       rspamd_mempool_add_destructor (new_task->task_pool,
-                       rspamd_ptr_array_free_hard, new_task->received);
 
        new_task->sock = -1;
        new_task->flags |= (RSPAMD_TASK_FLAG_MIME|RSPAMD_TASK_FLAG_JSON);
        new_task->result = rspamd_create_metric_result (new_task);
 
-       new_task->message_id = new_task->queue_id = "undef";
+       new_task->queue_id = "undef";
        new_task->messages = ucl_object_typed_new (UCL_OBJECT);
        new_task->lua_cache = g_hash_table_new (rspamd_str_hash, rspamd_str_equal);