]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
Some more fixes to hyperscan match
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 9 Dec 2015 14:06:37 +0000 (14:06 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 9 Dec 2015 14:06:37 +0000 (14:06 +0000)
src/libserver/re_cache.c

index 44eadd385188ef31b905945dc3be61c0caf5d234..797361a854320e360e19ac0cef6c846b310d84b5 100644 (file)
@@ -449,8 +449,9 @@ rspamd_re_cache_hyperscan_cb (unsigned int id,
 
        rt = cbdata->rt;
 
-       if (!isset (rt->checked, id)) {
-               if (flags & HS_FLAG_PREFILTER) {
+
+       if (flags & HS_FLAG_PREFILTER) {
+               if (!isset (rt->checked, id)) {
                        /* We need to match the corresponding pcre first */
                        pcre_elt = g_ptr_array_index (rt->cache->re, id);
                        ret = rspamd_re_cache_process_pcre (rt,
@@ -459,13 +460,14 @@ rspamd_re_cache_hyperscan_cb (unsigned int id,
                                        to - from,
                                        FALSE,
                                        TRUE);
-               }
-               else {
-                       ret = 1;
-               }
 
+                       setbit (rt->checked, id);
+                       rt->results[id] = ret;
+               }
+       }
+       else {
                setbit (rt->checked, id);
-               rt->results[id] += ret;
+               rt->results[id] ++;
        }
 
        return 0;