]> source.dussan.org Git - rspamd.git/commitdiff
[Feature] Fold DKIM-Signature header
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 15 Aug 2016 15:26:24 +0000 (16:26 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 15 Aug 2016 15:26:24 +0000 (16:26 +0100)
src/client/rspamc.c
src/libserver/dkim.c
src/libserver/protocol.c

index bad266b9e82149c4f2f43debefd9b06b5f4b86cf..7a3e2061cdac16a52c8628accd2d07dd51bbe1a3 100644 (file)
@@ -1130,12 +1130,8 @@ rspamc_mime_output (FILE *out, ucl_object_t *result, GString *input,
                g_string_free (symbuf, TRUE);
 
                if (ucl_object_lookup (result, "dkim-signature")) {
-                       folded_symbuf = rspamd_header_value_fold ("DKIM-Signature",
-                                       ucl_object_tostring (ucl_object_lookup (result, "dkim-signature")),
-                                       0);
-                       rspamd_printf_gstring (added_headers, "DKIM-Signature: %v\r\n",
-                                       folded_symbuf);
-                       g_string_free (folded_symbuf, TRUE);
+                       rspamd_printf_gstring (added_headers, "DKIM-Signature: %s\r\n",
+                                       ucl_object_tostring (ucl_object_lookup (result, "dkim-signature")));
                }
 
                if (json || raw || compact) {
index 057d7b33b2e32aebf711c814ebe1c55d5b91645e..51f366179415c98f3108843c7c8ee53a4dcfc94f 100644 (file)
@@ -2136,7 +2136,7 @@ rspamd_dkim_sign (struct rspamd_task *task,
                return NULL;
        }
 
-       b64_data = rspamd_encode_base64 (rsa_buf, rsa_len, 0, NULL);
+       b64_data = rspamd_encode_base64_fold (rsa_buf, rsa_len, 70, NULL);
        rspamd_printf_gstring (hdr, "%s", b64_data);
        g_free (b64_data);
 
index 371a5de29b81353bfb97acc230f74df81d489d79..201142c17d0f7253e002ac9c2d64769223ea6dd3 100644 (file)
@@ -1027,8 +1027,13 @@ rspamd_protocol_write_ucl (struct rspamd_task *task)
        dkim_sig = rspamd_mempool_get_variable (task->task_pool, "dkim-signature");
 
        if (dkim_sig) {
-               ucl_object_insert_key (top, ucl_object_fromstring (dkim_sig->str),
-                                       "dkim-signature", 0, false);
+               GString *folded_header = rspamd_header_value_fold ("DKIM-Signature",
+                               dkim_sig->str, 80);
+               ucl_object_insert_key (top,
+                               ucl_object_fromstring_common (folded_header->str,
+                                               folded_header->len, UCL_STRING_RAW),
+                               "dkim-signature", 0, false);
+               g_string_free (folded_header, TRUE);
        }
 
        rmilter_reply = rspamd_mempool_get_variable (task->task_pool, "rmilter-reply");