aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@rspamd.com>2024-04-19 14:14:10 +0100
committerVsevolod Stakhov <vsevolod@rspamd.com>2024-04-19 14:14:10 +0100
commit7c847699971d5a848f6b738cf82fdd79169dda25 (patch)
treea675bb196623057c8bca7bf2ec41e6fadb4458cf
parent6cf9ca1f978c3da18917e745268e5f01091ac55b (diff)
downloadrspamd-7c847699971d5a848f6b738cf82fdd79169dda25.tar.gz
rspamd-7c847699971d5a848f6b738cf82fdd79169dda25.zip
[Minor] Support UTF8 in Received flags
Issue: #4919
-rw-r--r--src/libmime/received.cxx19
-rw-r--r--src/libmime/received.hxx7
2 files changed, 20 insertions, 6 deletions
diff --git a/src/libmime/received.cxx b/src/libmime/received.cxx
index ab0a65a69..76b210a88 100644
--- a/src/libmime/received.cxx
+++ b/src/libmime/received.cxx
@@ -1,11 +1,11 @@
-/*-
- * Copyright 2021 Vsevolod Stakhov
+/*
+ * Copyright 2024 Vsevolod Stakhov
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -616,13 +616,25 @@ received_header_parse(received_header_chain &chain, rspamd_mempool_t *pool,
static constexpr const auto protos_map = frozen::make_unordered_map<frozen::string, received_flags>({{"smtp", received_flags::SMTP},
{"esmtp", received_flags::ESMTP},
+ {"utf8esmtp", received_flags::ESMTP |
+ received_flags::UTF8},
{"esmtpa", received_flags::ESMTPA |
received_flags::AUTHENTICATED},
+ {"utf8esmtpa", received_flags::ESMTPA |
+ received_flags::AUTHENTICATED |
+ received_flags::UTF8},
{"esmtpsa", received_flags::ESMTPSA |
received_flags::SSL |
received_flags::AUTHENTICATED},
+ {"utf8esmtpsa", received_flags::ESMTPSA |
+ received_flags::SSL |
+ received_flags::AUTHENTICATED |
+ received_flags::UTF8},
{"esmtps", received_flags::ESMTPS |
received_flags::SSL},
+ {"utf8esmtps", received_flags::ESMTPS |
+ received_flags::SSL |
+ received_flags::UTF8},
{"lmtp", received_flags::LMTP},
{"imap", received_flags::IMAP},
{"imaps", received_flags::IMAP |
@@ -800,6 +812,7 @@ received_export_to_lua(received_header_chain *chain, lua_State *L) -> bool
push_flag(rh, received_flags::ARTIFICIAL, "artificial");
push_flag(rh, received_flags::AUTHENTICATED, "authenticated");
push_flag(rh, received_flags::SSL, "ssl");
+ push_flag(rh, received_flags::UTF8, "utf8");
lua_setfield(L, -2, "flags");
auto push_nullable_string = [L](const mime_string &st, const char *field) {
diff --git a/src/libmime/received.hxx b/src/libmime/received.hxx
index 4f423f1a3..5e2b1bfb9 100644
--- a/src/libmime/received.hxx
+++ b/src/libmime/received.hxx
@@ -1,11 +1,11 @@
-/*-
- * Copyright 2021 Vsevolod Stakhov
+/*
+ * Copyright 2024 Vsevolod Stakhov
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -58,6 +58,7 @@ enum class received_flags {
ARTIFICIAL = (1u << 11u),
SSL = (1u << 12u),
AUTHENTICATED = (1u << 13u),
+ UTF8 = 1u << 14u,
};
constexpr received_flags operator|(received_flags lhs, received_flags rhs)