From: Vsevolod Stakhov Date: Mon, 15 Aug 2016 15:26:24 +0000 (+0100) Subject: [Feature] Fold DKIM-Signature header X-Git-Tag: 1.3.4~50 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=96df62e1b8e6f72fbecb38f9354691a490aa5f90;p=thirdparty%2Frspamd.git [Feature] Fold DKIM-Signature header --- diff --git a/src/client/rspamc.c b/src/client/rspamc.c index bad266b9e8..7a3e2061cd 100644 --- a/src/client/rspamc.c +++ b/src/client/rspamc.c @@ -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) { diff --git a/src/libserver/dkim.c b/src/libserver/dkim.c index 057d7b33b2..51f3661794 100644 --- a/src/libserver/dkim.c +++ b/src/libserver/dkim.c @@ -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); diff --git a/src/libserver/protocol.c b/src/libserver/protocol.c index 371a5de29b..201142c17d 100644 --- a/src/libserver/protocol.c +++ b/src/libserver/protocol.c @@ -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");