Parcourir la source

[Minor] Allow to set custom spam header in milter module

tags/1.6.0
Vsevolod Stakhov il y a 7 ans
Parent
révision
0450fb4e79
1 fichiers modifiés avec 14 ajouts et 1 suppressions
  1. 14
    1
      src/libserver/milter.c

+ 14
- 1
src/libserver/milter.c Voir le fichier

@@ -45,6 +45,12 @@
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);

Chargement…
Annuler
Enregistrer