]> source.dussan.org Git - rspamd.git/commitdiff
Add diagnostic for new radix
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Sat, 13 Feb 2016 14:32:53 +0000 (14:32 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Sat, 13 Feb 2016 14:32:53 +0000 (14:32 +0000)
src/libutil/radix.c

index 2b67d791740ba79018e0722b9ec49746e58841a4..a8bf5e3d393c418cd422b38e7e7db1488141bef5 100644 (file)
@@ -67,18 +67,27 @@ radix_insert_compressed (radix_compressed_t * tree,
 {
        guint keybits = keylen * NBBY;
        uintptr_t old;
+       int ret;
 
        g_assert (tree != NULL);
        g_assert (keybits >= masklen);
 
        msg_debug_radix ("want insert value %p with mask %z, key: %*xs",
-                       (gpointer)value, masklen, (int)keybits, key);
+                       (gpointer)value, keybits - masklen, (int)keylen, key);
 
        old = radix_find_compressed (tree, key, keylen);
 
-       btrie_add_prefix (tree->tree, key, keybits - masklen,
+       ret = btrie_add_prefix (tree->tree, key, keybits - masklen,
                        (gconstpointer)value);
 
+       if (ret != BTRIE_OKAY) {
+               msg_err_radix ("cannot insert %p with mask %z, key: %*xs, duplicate value",
+                               (gpointer)value, keybits - masklen, (int)keylen, key);
+       }
+       else {
+               tree->size ++;
+       }
+
        return old;
 }