]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] Allow to set custom spam header in milter module
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 7 Jun 2017 18:33:35 +0000 (19:33 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 7 Jun 2017 21:13:18 +0000 (22:13 +0100)
src/libserver/milter.c

index 67f47e95bf5f6311c40273c4d6b6ace81cb83b5c..ceea53cf8c6f222bafde22235a9577143ada18a1 100644 (file)
         G_STRFUNC, \
         __VA_ARGS__)
 
+struct rspamd_milter_context {
+       gchar *spam_header;
+};
+
+static struct rspamd_milter_context *milter_ctx = NULL;
+
 static gboolean  rspamd_milter_handle_session (
                struct rspamd_milter_session *session,
                struct rspamd_milter_private *priv);
@@ -962,6 +968,11 @@ rspamd_milter_handle_socket (gint fd, const struct timeval *tv,
        g_assert (finish_cb != NULL);
        g_assert (error_cb != NULL);
 
+       if (G_UNLIKELY (milter_ctx == NULL)) {
+               milter_ctx = g_malloc (sizeof (*milter_ctx));
+               milter_ctx->spam_header = g_strdup (RSPAMD_MILTER_SPAM_HEADER);
+       }
+
        session = g_malloc0 (sizeof (*session));
        priv = g_malloc0 (sizeof (*priv));
        priv->fd = fd;
@@ -1449,9 +1460,11 @@ rspamd_milter_send_task_results (struct rspamd_milter_session *session,
                break;
 
        case METRIC_ACTION_ADD_HEADER:
-               hname = g_string_new (RSPAMD_MILTER_SPAM_HEADER);
+               hname = g_string_new (milter_ctx->spam_header);
+               /* TODO: Perhaps, we can customize it as well */
                hvalue = g_string_new ("Yes");
 
+               /* TODO: We to track headers to make it work fine */
                rspamd_milter_send_action (session, RSPAMD_MILTER_CHGHEADER,
                                (guint32)1, hname, hvalue);
                g_string_free (hname, TRUE);