summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2018-11-16 17:50:35 +0000
committerVsevolod Stakhov <vsevolod@highsecure.ru>2018-11-16 17:50:35 +0000
commit306a8e0c4cc8bbe26c0da5fa8a8339566118a421 (patch)
treed12b6bb7bd0fed9862bc5069ab75eb9d172e1824 /src
parent4a8f0846971bd5684f8fccd3763fbd5a64c6e501 (diff)
downloadrspamd-306a8e0c4cc8bbe26c0da5fa8a8339566118a421.tar.gz
rspamd-306a8e0c4cc8bbe26c0da5fa8a8339566118a421.zip
[Feature] Write DKIM selector in dkim allow/reject symbols
Diffstat (limited to 'src')
-rw-r--r--src/libserver/dkim.c10
-rw-r--r--src/libserver/dkim.h1
-rw-r--r--src/plugins/dkim_check.c13
3 files changed, 19 insertions, 5 deletions
diff --git a/src/libserver/dkim.c b/src/libserver/dkim.c
index 6d3ace1df..1b78ee84e 100644
--- a/src/libserver/dkim.c
+++ b/src/libserver/dkim.c
@@ -2528,6 +2528,16 @@ rspamd_dkim_get_domain (rspamd_dkim_context_t *ctx)
return NULL;
}
+const gchar*
+rspamd_dkim_get_selector (rspamd_dkim_context_t *ctx)
+{
+ if (ctx) {
+ return ctx->selector;
+ }
+
+ return NULL;
+}
+
guint
rspamd_dkim_key_get_ttl (rspamd_dkim_key_t *k)
{
diff --git a/src/libserver/dkim.h b/src/libserver/dkim.h
index 6ce099464..61580e426 100644
--- a/src/libserver/dkim.h
+++ b/src/libserver/dkim.h
@@ -222,6 +222,7 @@ void rspamd_dkim_key_unref (rspamd_dkim_key_t *k);
rspamd_dkim_sign_key_t * rspamd_dkim_sign_key_ref (rspamd_dkim_sign_key_t *k);
void rspamd_dkim_sign_key_unref (rspamd_dkim_sign_key_t *k);
const gchar* rspamd_dkim_get_domain (rspamd_dkim_context_t *ctx);
+const gchar* rspamd_dkim_get_selector (rspamd_dkim_context_t *ctx);
const gchar* rspamd_dkim_get_dns_key (rspamd_dkim_context_t *ctx);
guint rspamd_dkim_key_get_ttl (rspamd_dkim_key_t *k);
diff --git a/src/plugins/dkim_check.c b/src/plugins/dkim_check.c
index 72091fccb..f1a587e4a 100644
--- a/src/plugins/dkim_check.c
+++ b/src/plugins/dkim_check.c
@@ -1013,22 +1013,25 @@ dkim_module_check (struct dkim_check_result *res)
if (symbol != NULL) {
const gchar *domain = rspamd_dkim_get_domain (cur->ctx);
+ const gchar *selector = rspamd_dkim_get_selector (cur->ctx);
gsize tracelen;
gchar *tracebuf;
- tracelen = strlen (domain) + 3; /* :<trace>\0 */
+ tracelen = strlen (domain) + strlen (selector) + 4;
tracebuf = rspamd_mempool_alloc (cur->task->task_pool,
tracelen);
rspamd_snprintf (tracebuf, tracelen, "%s:%s", domain, trace);
rspamd_task_insert_result (cur->task,
- symbol,
- symbol_weight,
- domain);
- rspamd_task_insert_result (cur->task,
"DKIM_TRACE",
0.0,
tracebuf);
+
+ rspamd_snprintf (tracebuf, tracelen, "%s:s=%s", domain, selector);
+ rspamd_task_insert_result (cur->task,
+ symbol,
+ symbol_weight,
+ tracebuf);
}
}
}