diff options
author | Vsevolod Stakhov <vsevolod@rspamd.com> | 2024-04-19 14:14:10 +0100 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@rspamd.com> | 2024-04-19 14:14:10 +0100 |
commit | 7c847699971d5a848f6b738cf82fdd79169dda25 (patch) | |
tree | a675bb196623057c8bca7bf2ec41e6fadb4458cf | |
parent | 6cf9ca1f978c3da18917e745268e5f01091ac55b (diff) | |
download | rspamd-7c847699971d5a848f6b738cf82fdd79169dda25.tar.gz rspamd-7c847699971d5a848f6b738cf82fdd79169dda25.zip |
[Minor] Support UTF8 in Received flags
Issue: #4919
-rw-r--r-- | src/libmime/received.cxx | 19 | ||||
-rw-r--r-- | src/libmime/received.hxx | 7 |
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) |