]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Feature] Write DKIM selector in dkim allow/reject symbols
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 16 Nov 2018 17:50:35 +0000 (17:50 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 16 Nov 2018 17:50:35 +0000 (17:50 +0000)
src/libserver/dkim.c
src/libserver/dkim.h
src/plugins/dkim_check.c

index 6d3ace1df1e90e9b62a67f2696d40a5d2b3906e1..1b78ee84e76e2ec1ddaeeea1c0120a862b2e6cce 100644 (file)
@@ -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)
 {
index 6ce09946423b7e07c876d1bb3e29ab04daa3b8be..61580e426a4a0825323d4e3ac64910ca62b629ba 100644 (file)
@@ -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);
 
index 72091fccba58bc19d26531e36a2e59ac14e881a2..f1a587e4ab1d5e1debf553c1978755c2a447e344 100644 (file)
@@ -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);
                        }
                }
        }