]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Minor] Add flag for mime utf operations
authorVsevolod Stakhov <vsevolod@rspamd.com>
Tue, 16 Jul 2024 13:07:09 +0000 (14:07 +0100)
committerVsevolod Stakhov <vsevolod@rspamd.com>
Tue, 16 Jul 2024 13:07:09 +0000 (14:07 +0100)
conf/options.inc
src/libserver/cfg_file.h
src/libserver/cfg_rcl.cxx
src/libserver/cfg_utils.cxx
src/lua/lua_config.c

index d5cf60d7b5bd0bc11f5bc8cb22c8526b58aac15f..41004c2626971c4dbcbe468d1cd965869397f8cd 100644 (file)
@@ -70,3 +70,6 @@ task_timeout = 8s;
 
 # Emit soft reject when timeout takes place
 soft_reject_on_timeout = false;
+
+# Use utf8 mode for mime operations
+enable_mime_utf = true;
index 1ba1d84ad699f490f27c22ad98b1a527e6f840c7..a963f952fee05a9498e59f40cd94bd1d846d58c7 100644 (file)
@@ -366,6 +366,7 @@ struct rspamd_config {
        gboolean public_groups_only;                             /**< Output merely public groups everywhere                            */
        enum rspamd_gtube_patterns_policy gtube_patterns_policy; /**< Enable test patterns                                                              */
        gboolean enable_css_parser;                              /**< Enable css parsing in HTML                                                        */
+       gboolean enable_mime_utf;                                /**< Enable utf8 mime parsing                                                  */
 
        gsize max_cores_size;        /**< maximum size occupied by rspamd core files                    */
        gsize max_cores_count;       /**< maximum number of core files                                          */
index ce3df4010abc3eeb66c72be23d7f3d6ac6714126..2fe37f18e593baef526aae0203a60de7c707f508 100644 (file)
@@ -1917,7 +1917,13 @@ rspamd_rcl_config_init(struct rspamd_config *cfg, GHashTable *skip_sections)
                                                                           rspamd_rcl_parse_struct_boolean,
                                                                           G_STRUCT_OFFSET(struct rspamd_config, enable_css_parser),
                                                                           0,
-                                                                          "Enable CSS parser (experimental)");
+                                                                          "Enable CSS parser");
+               rspamd_rcl_add_default_handler(sub,
+                                                                          "enable_mime_utf",
+                                                                          rspamd_rcl_parse_struct_boolean,
+                                                                          G_STRUCT_OFFSET(struct rspamd_config, enable_mime_utf),
+                                                                          0,
+                                                                          "Enable UTF8 mode for mime");
                rspamd_rcl_add_default_handler(sub,
                                                                           "enable_experimental",
                                                                           rspamd_rcl_parse_struct_boolean,
index 1344bc4f9f0cb6a382109ec4b633bd05c90d6347..92a230395c276da05de45969d9dff0426f913252 100644 (file)
@@ -341,6 +341,7 @@ rspamd_config_new(enum rspamd_config_init_flags flags)
        cfg->heartbeat_interval = 10.0;
 
        cfg->enable_css_parser = true;
+       cfg->enable_mime_utf = true;
        cfg->script_modules = g_ptr_array_new();
 
        REF_INIT_RETAIN(cfg, rspamd_config_free);
index f9a79eef1d28b9213dbcf73e643af6bf395f021e..f5405f76da399fc72ed2c7881736db06b0b7f076 100644 (file)
@@ -790,6 +790,13 @@ LUA_FUNCTION_DEF(config, get_cpu_flags);
  */
 LUA_FUNCTION_DEF(config, has_torch);
 
+/***
+ * @method rspamd_config:is_mime_utf()
+ * Returns true if Rspamd is configured to use UTF for mime processing
+ * @return {boolean} true if mime utf is enabled
+ */
+LUA_FUNCTION_DEF(config, is_mime_utf);
+
 /***
  * @method rspamd_config:experimental_enabled()
  * Returns true if experimental plugins are enabled
@@ -917,6 +924,7 @@ static const struct luaL_reg configlib_m[] = {
        LUA_INTERFACE_DEF(config, set_peak_cb),
        LUA_INTERFACE_DEF(config, get_cpu_flags),
        LUA_INTERFACE_DEF(config, has_torch),
+       LUA_INTERFACE_DEF(config, is_mime_utf),
        LUA_INTERFACE_DEF(config, experimental_enabled),
        LUA_INTERFACE_DEF(config, load_ucl),
        LUA_INTERFACE_DEF(config, parse_rcl),
@@ -4258,6 +4266,22 @@ lua_config_has_torch(lua_State *L)
        return 1;
 }
 
+static int
+lua_config_is_mime_utf(lua_State *L)
+{
+       LUA_TRACE_POINT;
+       struct rspamd_config *cfg = lua_check_config(L, 1);
+
+       if (cfg != NULL) {
+               lua_pushboolean(L, cfg->enable_mime_utf);
+       }
+       else {
+               return luaL_error(L, "invalid arguments");
+       }
+
+       return 1;
+}
+
 static int
 lua_config_experimental_enabled(lua_State *L)
 {