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);
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;
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);