@@ -392,7 +392,8 @@ rspamd_url_parse_tld_file (const gchar *fname, | |||
#endif | |||
m.flags = flags; | |||
rspamd_multipattern_add_pattern (url_scanner->search_trie, p); | |||
rspamd_multipattern_add_pattern (url_scanner->search_trie, p, | |||
RSPAMD_MULTIPATTERN_TLD | RSPAMD_MULTIPATTERN_ICASE); | |||
m.pattern = rspamd_multipattern_get_pattern (url_scanner->search_trie, | |||
rspamd_multipattern_get_npatterns (url_scanner->search_trie) - 1); | |||
m.patlen = strlen (m.pattern); | |||
@@ -412,7 +413,8 @@ rspamd_url_add_static_matchers (struct url_match_scanner *sc) | |||
for (i = 0; i < n; i++) { | |||
rspamd_multipattern_add_pattern (url_scanner->search_trie, | |||
static_matchers[i].pattern); | |||
static_matchers[i].pattern, | |||
RSPAMD_MULTIPATTERN_ICASE); | |||
} | |||
} | |||
@@ -384,7 +384,7 @@ rspamd_multipattern_create_sized (guint npatterns, | |||
void | |||
rspamd_multipattern_add_pattern (struct rspamd_multipattern *mp, | |||
const gchar *pattern) | |||
const gchar *pattern, gint flags) | |||
{ | |||
g_assert (pattern != NULL); | |||
g_assert (mp != NULL); | |||
@@ -402,14 +402,14 @@ rspamd_multipattern_add_pattern (struct rspamd_multipattern *mp, | |||
} | |||
g_array_append_val (mp->hs_flags, fl); | |||
np = rspamd_multipattern_pattern_filter (pattern, mp->flags); | |||
np = rspamd_multipattern_pattern_filter (pattern, flags); | |||
g_array_append_val (mp->hs_pats, np); | |||
fl = mp->cnt; | |||
g_array_append_val (mp->hs_ids, fl); | |||
#else | |||
ac_trie_pat_t pat; | |||
pat.ptr = rspamd_multipattern_pattern_filter (pattern, mp->flags); | |||
pat.ptr = rspamd_multipattern_pattern_filter (pattern, flags); | |||
pat.len = strlen (pat.ptr); | |||
g_array_append_val (mp->pats, pat); | |||
@@ -431,7 +431,7 @@ rspamd_multipattern_create_full (const gchar **patterns, | |||
mp = rspamd_multipattern_create_sized (npatterns, flags); | |||
for (i = 0; i < npatterns; i++) { | |||
rspamd_multipattern_add_pattern (mp, patterns[i]); | |||
rspamd_multipattern_add_pattern (mp, patterns[i], flags); | |||
} | |||
return mp; |
@@ -91,7 +91,7 @@ struct rspamd_multipattern *rspamd_multipattern_create_full ( | |||
* @param pattern | |||
*/ | |||
void rspamd_multipattern_add_pattern (struct rspamd_multipattern *mp, | |||
const gchar *pattern); | |||
const gchar *pattern, gint flags); | |||
/** | |||
* Compiles multipattern structure |
@@ -88,7 +88,7 @@ static gint | |||
lua_trie_create (lua_State *L) | |||
{ | |||
struct rspamd_multipattern *trie, **ptrie; | |||
gint npat = 0; | |||
gint npat = 0, flags = RSPAMD_MULTIPATTERN_ICASE|RSPAMD_MULTIPATTERN_GLOB; | |||
GError *err = NULL; | |||
if (!lua_istable (L, 1)) { | |||
@@ -107,13 +107,13 @@ lua_trie_create (lua_State *L) | |||
lua_pop (L, 1); | |||
} | |||
trie = rspamd_multipattern_create_sized (npat, | |||
RSPAMD_MULTIPATTERN_ICASE|RSPAMD_MULTIPATTERN_GLOB); | |||
trie = rspamd_multipattern_create_sized (npat, flags); | |||
lua_pushnil (L); | |||
while (lua_next (L, -2) != 0) { | |||
if (lua_isstring (L, -1)) { | |||
rspamd_multipattern_add_pattern (trie, lua_tostring (L, -1)); | |||
rspamd_multipattern_add_pattern (trie, lua_tostring (L, -1), | |||
flags); | |||
} | |||
lua_pop (L, 1); |