From: Vsevolod Stakhov Date: Mon, 21 Apr 2014 16:48:28 +0000 (+0100) Subject: Add function `radix32_tree_find_addr`. X-Git-Tag: 0.7.0~303 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=875707dcc1f2dff45af8da88c93b6d5a658baf4f;p=thirdparty%2Frspamd.git Add function `radix32_tree_find_addr`. --- diff --git a/src/libutil/radix.c b/src/libutil/radix.c index 1a05db1789..7af6653314 100644 --- a/src/libutil/radix.c +++ b/src/libutil/radix.c @@ -306,6 +306,16 @@ radix_tree_free (radix_tree_t * tree) g_free (tree); } +uintptr_t +radix32_tree_find_addr (radix_tree_t *tree, rspamd_inet_addr_t *addr) +{ + if (addr == NULL || addr->af != AF_INET) { + return RADIX_NO_VALUE; + } + + return radix32tree_find (tree, ntohl (addr->addr.s4.sin_addr.s_addr)); +} + /* * vi:ts=4 */ diff --git a/src/libutil/radix.h b/src/libutil/radix.h index 4cc2873c7c..88f345e3d0 100644 --- a/src/libutil/radix.h +++ b/src/libutil/radix.h @@ -3,6 +3,7 @@ #include "config.h" #include "mem_pool.h" +#include "util.h" #define RADIX_NO_VALUE (uintptr_t)-1 @@ -69,6 +70,14 @@ gint radix32tree_delete (radix_tree_t *tree, guint32 key, guint32 mask); */ uintptr_t radix32tree_find (radix_tree_t *tree, guint32 key); +/** + * Find specified address in tree (works only for ipv4 addresses) + * @param tree + * @param addr + * @return + */ +uintptr_t radix32_tree_find_addr (radix_tree_t *tree, rspamd_inet_addr_t *addr); + /** * Traverse via the whole tree calling specified callback */ diff --git a/src/libutil/util.h b/src/libutil/util.h index 0605fe87d8..4359d4288b 100644 --- a/src/libutil/util.h +++ b/src/libutil/util.h @@ -3,7 +3,6 @@ #include "config.h" #include "mem_pool.h" -#include "radix.h" #include "statfile.h" #include "printf.h" #include "fstring.h"