commit 841dbfe: [Minor] Fix `with` parsing
Vsevolod Stakhov
vsevolod at highsecure.ru
Thu Feb 7 17:28:10 UTC 2019
Author: Vsevolod Stakhov
Date: 2019-02-07 17:24:51 +0000
URL: https://github.com/rspamd/rspamd/commit/841dbfe275d0863c272420ac718ea5f478552c4d (HEAD -> master)
[Minor] Fix `with` parsing
---
src/libmime/mime_headers.c | 12 ++++++++++--
test/lua/unit/received.lua | 19 ++++++++++++++++---
2 files changed, 26 insertions(+), 5 deletions(-)
diff --git a/src/libmime/mime_headers.c b/src/libmime/mime_headers.c
index 20c1e2ee9..ca44c4765 100644
--- a/src/libmime/mime_headers.c
+++ b/src/libmime/mime_headers.c
@@ -1427,7 +1427,7 @@ rspamd_smtp_received_parse (struct rspamd_task *task,
RSPAMD_FTOK_ASSIGN (&t2, "esmtp");
- if (rspamd_ftok_starts_with (&t1, &t2) == 0) {
+ if (rspamd_ftok_starts_with (&t1, &t2)) {
/*
* esmtp, esmtps, esmtpsa
*/
@@ -1440,6 +1440,7 @@ rspamd_smtp_received_parse (struct rspamd_task *task,
rh->type = RSPAMD_RECEIVED_ESMTPS;
rh->flags |= RSPAMD_RECEIVED_FLAG_SSL;
}
+ continue;
}
else if (t1.len == t2.len + 2) {
if (t1.begin[t2.len - 1] == 's' &&
@@ -1448,9 +1449,11 @@ rspamd_smtp_received_parse (struct rspamd_task *task,
rh->flags |= RSPAMD_RECEIVED_FLAG_AUTHENTICATED;
rh->flags |= RSPAMD_RECEIVED_FLAG_SSL;
}
+ continue;
}
else if (t1.len == t2.len) {
rh->type = RSPAMD_RECEIVED_ESMTP;
+ continue;
}
}
@@ -1458,23 +1461,26 @@ rspamd_smtp_received_parse (struct rspamd_task *task,
if (rspamd_ftok_cmp (&t1, &t2) == 0) {
rh->type = RSPAMD_RECEIVED_LMTP;
+ continue;
}
RSPAMD_FTOK_ASSIGN (&t2, "imap");
if (rspamd_ftok_cmp (&t1, &t2) == 0) {
rh->type = RSPAMD_RECEIVED_IMAP;
+ continue;
}
RSPAMD_FTOK_ASSIGN (&t2, "local");
if (rspamd_ftok_cmp (&t1, &t2) == 0) {
rh->type = RSPAMD_RECEIVED_LOCAL;
+ continue;
}
RSPAMD_FTOK_ASSIGN (&t2, "http");
- if (rspamd_ftok_starts_with (&t1, &t2) == 0) {
+ if (rspamd_ftok_starts_with (&t1, &t2)) {
if (t1.len == t2.len + 1) {
if (t1.begin[t2.len] == 's') {
rh->type = RSPAMD_RECEIVED_HTTP;
@@ -1484,6 +1490,8 @@ rspamd_smtp_received_parse (struct rspamd_task *task,
else if (t1.len == t2.len) {
rh->type = RSPAMD_RECEIVED_HTTP;
}
+
+ continue;
}
}
diff --git a/test/lua/unit/received.lua b/test/lua/unit/received.lua
index 75fd3701c..b7a425785 100644
--- a/test/lua/unit/received.lua
+++ b/test/lua/unit/received.lua
@@ -25,6 +25,19 @@ context("Received headers parser", function()
]]
local cases = {
+ {[[from server.chat-met-vreemden.nl (unknown [IPv6:2a01:7c8:aab6:26d:5054:ff:fed1:1da2])
+ (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
+ (Client did not present a certificate)
+ by mx1.freebsd.org (Postfix) with ESMTPS id CF0171862
+ for <test at example.com>; Mon, 6 Jul 2015 09:01:20 +0000 (UTC)
+ (envelope-from upwest201diana at outlook.com)]],
+ {
+ real_ip = '2a01:7c8:aab6:26d:5054:ff:fed1:1da2',
+ from_hostname = 'server.chat-met-vreemden.nl',
+ real_hostname = '',
+ by_hostname = 'mx1.freebsd.org',
+ },
+ },
{[[from out-9.smtp.github.com (out-9.smtp.github.com [192.30.254.192])
(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))
(No client certificate requested)
@@ -91,7 +104,7 @@ context("Received headers parser", function()
real_ip = '65.19.167.131',
by_hostname = 'mail01.someotherdomain.org',
}
- }
+ },
}
local task = ffi.C.rspamd_task_new(nil, nil)
@@ -120,7 +133,7 @@ context("Received headers parser", function()
end
elseif k == 'from_ip' then
if #v > 0 then
- local got_string = tostring(rspamd_ip.from_string(ffi_string(hdr.from_ip)))
+ local got_string = tostring((rspamd_ip.from_string(ffi_string(hdr.from_ip) or '')) or '')
local expected_string = tostring(rspamd_ip.from_string(v))
assert_equal(expected_string, got_string,
string.format('%s: from_ip: %s, expected: %s',
@@ -132,7 +145,7 @@ context("Received headers parser", function()
end
elseif k == 'real_ip' then
if #v > 0 then
- local got_string = tostring(rspamd_ip.from_string(ffi_string(hdr.from_ip)))
+ local got_string = tostring((rspamd_ip.from_string(ffi_string(hdr.from_ip) or '')) or '')
local expected_string = tostring(rspamd_ip.from_string(v))
assert_equal(expected_string, got_string,
string.format('%s: real_ip: %s, expected: %s',
More information about the Commits
mailing list