]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] Slightly refactor the code
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Sun, 10 Oct 2021 11:31:08 +0000 (12:31 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Sun, 10 Oct 2021 11:31:33 +0000 (12:31 +0100)
src/libmime/received.cxx
src/libmime/received.hxx

index 6d3e7b7963efd6b2460a49db18b403cadc324fc0..c06331de49e4703ccc5d3a70affdaea02ca0dacd 100644 (file)
@@ -258,12 +258,15 @@ received_spill(const std::string_view &in,
        const auto *p = in.data();
        const auto *end = p + in.size();
 
-       /* Skip spaces */
-       while (p < end && g_ascii_isspace (*p)) {
-               p++;
-       }
+       auto skip_spaces = [&p, end]() {
+               while (p < end && g_ascii_isspace (*p)) {
+                       p++;
+               }
+       };
+
+       skip_spaces();
 
-       /* And SMTP comments */
+       /* Skip SMTP comments */
        if (*p == '(') {
                auto obraces = 0, ebraces = 0;
 
@@ -279,9 +282,7 @@ received_spill(const std::string_view &in,
 
                        if (obraces == ebraces) {
                                /* Skip spaces after  */
-                               while (p < end && g_ascii_isspace (*p)) {
-                                       p++;
-                               }
+                               skip_spaces();
                                break;
                        }
                }
@@ -290,7 +291,7 @@ received_spill(const std::string_view &in,
        auto len = end - p;
 
        if (len == 0) {
-               return {};
+               return parts;
        }
 
        auto maybe_process_part = [&](received_part_type what) -> bool {
@@ -824,45 +825,7 @@ received_export_to_lua(received_header_chain *chain, lua_State *L) -> bool
                }
                lua_setfield(L, -2, "real_ip");
 
-               const auto *proto = "unknown";
-
-               switch (received_type_apply_maks(rh.flags)) {
-               case received_flags::SMTP:
-                       proto = "smtp";
-                       break;
-               case received_flags::ESMTP:
-                       proto = "esmtp";
-                       break;
-               case received_flags::ESMTPS:
-                       proto = "esmtps";
-                       break;
-               case received_flags::ESMTPA:
-                       proto = "esmtpa";
-                       break;
-               case received_flags::ESMTPSA:
-                       proto = "esmtpsa";
-                       break;
-               case received_flags::LMTP:
-                       proto = "lmtp";
-                       break;
-               case received_flags::IMAP:
-                       proto = "imap";
-                       break;
-               case received_flags::HTTP:
-                       proto = "http";
-                       break;
-               case received_flags::LOCAL:
-                       proto = "local";
-                       break;
-               case received_flags::MAPI:
-                       proto = "mapi";
-                       break;
-               default:
-                       proto = "unknown";
-                       break;
-               }
-
-               lua_pushstring(L, proto);
+               lua_pushstring(L, received_protocol_to_string(rh.flags));
                lua_setfield(L, -2, "proto");
 
                lua_pushinteger(L, rh.timestamp);
index e4d8d8713b897005b9b192f259ff07aab7edd763..2edf628cc0c472d5c806f50505fc19684714064e 100644 (file)
@@ -84,7 +84,7 @@ constexpr bool operator !(received_flags fl)
        return fl == received_flags::DEFAULT;
 }
 
-constexpr received_flags received_type_apply_maks(received_flags fl) {
+constexpr received_flags received_type_apply_protocols_mask(received_flags fl) {
        return fl & (received_flags::SMTP|
                        received_flags::ESMTP|
                        received_flags::ESMTPA|
@@ -97,6 +97,47 @@ constexpr received_flags received_type_apply_maks(received_flags fl) {
                        received_flags::LMTP);
 }
 
+constexpr const char *received_protocol_to_string(received_flags fl) {
+       const auto *proto = "unknown";
+
+       switch (received_type_apply_protocols_mask(fl)) {
+       case received_flags::SMTP:
+               proto = "smtp";
+               break;
+       case received_flags::ESMTP:
+               proto = "esmtp";
+               break;
+       case received_flags::ESMTPS:
+               proto = "esmtps";
+               break;
+       case received_flags::ESMTPA:
+               proto = "esmtpa";
+               break;
+       case received_flags::ESMTPSA:
+               proto = "esmtpsa";
+               break;
+       case received_flags::LMTP:
+               proto = "lmtp";
+               break;
+       case received_flags::IMAP:
+               proto = "imap";
+               break;
+       case received_flags::HTTP:
+               proto = "http";
+               break;
+       case received_flags::LOCAL:
+               proto = "local";
+               break;
+       case received_flags::MAPI:
+               proto = "mapi";
+               break;
+       default:
+               break;
+       }
+
+       return proto;
+}
+
 struct received_header {
        mime_string from_hostname;
        mime_string real_hostname;
@@ -251,6 +292,6 @@ private:
        std::vector<received_header> headers;
 };
 
-}
+} // namespace rspamd::mime
 
 #endif //RSPAMD_RECEIVED_HXX