]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Fix] Some more fixes for urls parser
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Thu, 14 Apr 2016 16:36:27 +0000 (17:36 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Thu, 14 Apr 2016 16:36:27 +0000 (17:36 +0100)
src/libserver/url.c
src/libutil/multipattern.c

index 9d6ec34bf2dfc0da39719027f1d90a6fd3a2143f..e3bdf7e7c484014942374a482495ea8307494290 100644 (file)
@@ -416,8 +416,6 @@ rspamd_url_add_static_matchers (struct url_match_scanner *sc)
 {
        gint n = G_N_ELEMENTS (static_matchers), i;
 
-       g_array_append_vals (sc->matchers, static_matchers, n);
-
        for (i = 0; i < n; i++) {
                if (static_matchers[i].flags & URL_FLAG_REGEXP) {
                        rspamd_multipattern_add_pattern (url_scanner->search_trie,
@@ -432,6 +430,8 @@ rspamd_url_add_static_matchers (struct url_match_scanner *sc)
 
                static_matchers[i].patlen = strlen (static_matchers[i].pattern);
        }
+
+       g_array_append_vals (sc->matchers, static_matchers, n);
 }
 
 void
@@ -2003,6 +2003,7 @@ static gboolean
 rspamd_url_trie_is_match (struct url_matcher *matcher, const gchar *pos,
                const gchar *end)
 {
+#ifndef WITH_HYPERSCAN
        if (matcher->flags & URL_FLAG_TLD_MATCH) {
                /* Immediately check pos for valid chars */
                if (pos < end) {
@@ -2024,7 +2025,7 @@ rspamd_url_trie_is_match (struct url_matcher *matcher, const gchar *pos,
                        }
                }
        }
-
+#endif
        return TRUE;
 }
 
index d8cbd77d982d94cd342d39267ff76b142073e05b..838191363329e3c8c88a4b8e512a6879f381923b 100644 (file)
@@ -17,6 +17,7 @@
 #include "config.h"
 #include "libutil/multipattern.h"
 #include "libutil/str_util.h"
+#include "logger.h"
 
 #ifdef WITH_HYPERSCAN
 #include "hs.h"
@@ -398,7 +399,7 @@ rspamd_multipattern_add_pattern (struct rspamd_multipattern *mp,
                fl |= HS_FLAG_CASELESS;
        }
        if (mp->flags & RSPAMD_MULTIPATTERN_UTF8) {
-               fl |= HS_FLAG_UTF8;
+               fl |= HS_FLAG_UTF8|HS_FLAG_UCP;
        }
 
        g_array_append_val (mp->hs_flags, fl);