diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2015-03-28 10:57:59 +0000 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2015-03-28 10:57:59 +0000 |
commit | 1212a7448201dadc199419c237e94a3828c8a0b9 (patch) | |
tree | b63028cfd03395f4afb2e1d88b18cce0cfd64606 /src/libmime | |
parent | eceebd8868a3bf8052ce904584838e4eaea50fd9 (diff) | |
download | rspamd-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.c | 14 |
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); } |