aboutsummaryrefslogtreecommitdiffstats
path: root/src/libmime
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2015-03-28 10:57:59 +0000
committerVsevolod Stakhov <vsevolod@highsecure.ru>2015-03-28 10:57:59 +0000
commit1212a7448201dadc199419c237e94a3828c8a0b9 (patch)
treeb63028cfd03395f4afb2e1d88b18cce0cfd64606 /src/libmime
parenteceebd8868a3bf8052ce904584838e4eaea50fd9 (diff)
downloadrspamd-1212a7448201dadc199419c237e94a3828c8a0b9.tar.gz
rspamd-1212a7448201dadc199419c237e94a3828c8a0b9.zip
Parse IP from the first received header if not specified by protocol.
Diffstat (limited to 'src/libmime')
-rw-r--r--src/libmime/message.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/libmime/message.c b/src/libmime/message.c
index 15a59978d..f8ae25554 100644
--- a/src/libmime/message.c
+++ b/src/libmime/message.c
@@ -1600,6 +1600,20 @@ process_message (struct rspamd_task *task)
/* Restore normal order */
task->received = g_list_reverse (task->received);
+ /* Extract data from received header if we were not given IP */
+ if (task->received && (task->flags & RSPAMD_TASK_FLAG_NO_IP)) {
+ recv = task->received->data;
+ if (recv->real_ip) {
+ if (!rspamd_parse_inet_address (&task->from_addr, recv->real_ip)) {
+ msg_warn ("cannot get IP from received header: '%s'",
+ recv->real_ip);
+ }
+ }
+ if (recv->real_hostname) {
+ task->hostname = recv->real_hostname;
+ }
+ }
+
/* free the parser (and the stream) */
g_object_unref (parser);
}