summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2016-07-07 15:03:43 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2016-07-07 15:03:43 +0100
commit56c8b4e5d0c90349e36f49504feb531f6fda3ca7 (patch)
tree06ff4483257ce2e3dd8d7a71fac91e960fe0cda9 /src
parent754a89fb2d7c543ae4079ccd4eb936808b5a6494 (diff)
downloadrspamd-56c8b4e5d0c90349e36f49504feb531f6fda3ca7.tar.gz
rspamd-56c8b4e5d0c90349e36f49504feb531f6fda3ca7.zip
[Feature] Store raw headers value to use them in DKIM
Diffstat (limited to 'src')
-rw-r--r--src/libmime/message.c3
-rw-r--r--src/libmime/message.h2
2 files changed, 5 insertions, 0 deletions
diff --git a/src/libmime/message.c b/src/libmime/message.c
index c74ed1301..b7579ba25 100644
--- a/src/libmime/message.c
+++ b/src/libmime/message.c
@@ -112,6 +112,8 @@ process_raw_headers (struct rspamd_task *task, GHashTable *target,
rspamd_strlcpy (tmp, c, l + 1);
new->name = tmp;
new->empty_separator = TRUE;
+ new->raw_value = c;
+ new->raw_len = p - c; /* Including trailing ':' */
p++;
state = 2;
c = p;
@@ -217,6 +219,7 @@ process_raw_headers (struct rspamd_task *task, GHashTable *target,
}
new->value = tmp;
+ new->raw_len = p - new->raw_value;
new->decoded = g_mime_utils_header_decode_text (new->value);
if (new->decoded != NULL) {
diff --git a/src/libmime/message.h b/src/libmime/message.h
index 4055dc129..0d2ae74b4 100644
--- a/src/libmime/message.h
+++ b/src/libmime/message.h
@@ -91,6 +91,8 @@ struct received_header {
struct raw_header {
gchar *name;
gchar *value;
+ const gchar *raw_value; /* As it is in the message (unfolded and unparsed) */
+ gsize raw_len;
gboolean tab_separated;
gboolean empty_separator;
gchar *separator;