From: Vsevolod Stakhov Date: Sat, 13 Feb 2016 14:32:53 +0000 (+0000) Subject: Add diagnostic for new radix X-Git-Tag: 1.2.0~245 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2ba49f78f545af9e6e0057da5db4073e7f91a29f;p=thirdparty%2Frspamd.git Add diagnostic for new radix --- diff --git a/src/libutil/radix.c b/src/libutil/radix.c index 2b67d79174..a8bf5e3d39 100644 --- a/src/libutil/radix.c +++ b/src/libutil/radix.c @@ -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; }