flags = URL_FLAG_NOHTML | URL_FLAG_TLD_MATCH;
-#ifndef WITH_HYPERSCAN
if (linebuf[0] == '*') {
flags |= URL_FLAG_STAR_MATCH;
p = strchr (linebuf, '.');
else {
p = linebuf;
}
-#else
- p = linebuf;
-#endif
m.flags = flags;
rspamd_multipattern_add_pattern (url_scanner->search_trie, p,
ndots--;
pos = p + 1;
}
+ else {
+ pos = p;
+ }
p--;
}
*/
if (pattern[0] == '*') {
- len = slen + 4;
p = strchr (pattern, '.');
if (p == NULL) {
p ++;
}
- prefix = ".*.";
+ prefix = "\\.";
+ len = slen + strlen (prefix);
}
else {
- len = slen + 1;
- prefix = ".";
+ prefix = "\\.";
p = pattern;
+ len = slen + strlen (prefix);
}
res = g_malloc (len + 1);
tmp = rspamd_multipattern_escape_tld_hyperscan (pattern, len, &tlen);
ret = rspamd_str_regexp_escape (tmp, tlen, dst_len,
- gl_flags|RSPAMD_REGEXP_ESCAPE_GLOB);
+ gl_flags|RSPAMD_REGEXP_ESCAPE_RE);
g_free (tmp);
}
else if (flags & RSPAMD_MULTIPATTERN_RE) {