]> source.dussan.org Git - rspamd.git/commitdiff
Init re cache on config post load
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 4 Dec 2015 15:54:02 +0000 (15:54 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 4 Dec 2015 15:54:02 +0000 (15:54 +0000)
src/libserver/cfg_utils.c
test/lua/unit/expressions.lua

index 8c7164fd08dc976de5521b1caec33d3df0dee814..9afbabf60e513867ff880e31aaf30af062e70c64 100644 (file)
@@ -675,6 +675,9 @@ rspamd_config_post_load (struct rspamd_config *cfg, gboolean validate_cache)
                return rspamd_symbols_cache_validate (cfg->cache, cfg, FALSE);
        }
 
+       /* Init re cache */
+       rspamd_re_cache_init (cfg->re_cache);
+
        return TRUE;
 }
 
index b2e66e8cc1eb5d1477387103cf187280b288753d..a9d4ac2ea658d5ed3b078044f03eb3b526d41d58 100644 (file)
@@ -5,7 +5,7 @@ context("Rspamd expressions", function()
   local rspamd_mempool = require "rspamd_mempool"
   local rspamd_regexp = require "rspamd_regexp"
   local split_re = rspamd_regexp.create('/\\s+|\\)|\\(/')
-  
+
   local function parse_func(str)
     -- extract token till the first space character
     local token = str
@@ -16,20 +16,22 @@ context("Rspamd expressions", function()
     -- Return token name
     return token
   end
-  
+
   test("Expression creation function", function()
     local function process_func(token, task)
       -- Do something using token and task
     end
-    
+
     local pool = rspamd_mempool.create()
-    
+
     local cases = {
        {'A & B | !C', 'C ! A B & |'},
        {'A & (B | !C)', 'A B C ! | &'},
        {'A & B &', nil},
        -- Unbalanced braces
        {'(((A))', nil},
+       -- Invalid data
+       {'1.0001', nil},
        -- Balanced braces
        {'(((A)))', 'A'},
        -- Plus and comparision operators
@@ -44,9 +46,9 @@ context("Rspamd expressions", function()
        {'A & B | ! C', 'C ! A B & |'},
     }
     for _,c in ipairs(cases) do
-      local expr,err = rspamd_expression.create(c[1], 
+      local expr,err = rspamd_expression.create(c[1],
         {parse_func, process_func}, pool)
-      
+
       if not c[2] then
         assert_nil(expr, "Should not be able to parse " .. c[1])
       else
@@ -60,14 +62,14 @@ context("Rspamd expressions", function()
   end)
   test("Expression process function", function()
     local function process_func(token, input)
-    
+
       --print(token)
       local t = input[token]
-      
+
       if t then return 1 end
       return 0
     end
-    
+
     local pool = rspamd_mempool.create()
     local atoms = {
       A = true,
@@ -89,7 +91,7 @@ context("Rspamd expressions", function()
        {'!!C', 1},
     }
     for _,c in ipairs(cases) do
-      local expr,err = rspamd_expression.create(c[1], 
+      local expr,err = rspamd_expression.create(c[1],
         {parse_func, process_func}, pool)
 
       assert_not_nil(expr, "Cannot parse " .. c[1])
@@ -98,7 +100,7 @@ context("Rspamd expressions", function()
       assert_equal(res, c[2], string.format("Processed expr '%s' returned '%d', expected: '%d'",
         expr:to_string(), res, c[2]))
     end
-    
+
     pool:destroy()
   end)
-end)
\ No newline at end of file
+end)