aboutsummaryrefslogtreecommitdiffstats
path: root/src/libutil/radix.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libutil/radix.c')
-rw-r--r--src/libutil/radix.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/libutil/radix.c b/src/libutil/radix.c
index 99e25d0ba..40cccb46b 100644
--- a/src/libutil/radix.c
+++ b/src/libutil/radix.c
@@ -868,6 +868,25 @@ radix_tree_destroy_compressed (radix_compressed_t *tree)
g_slice_free1 (sizeof (*tree), tree);
}
+uintptr_t
+radix_find_compressed_addr (radix_compressed_t *tree, rspamd_inet_addr_t *addr)
+{
+ if (addr == NULL) {
+ return RADIX_NO_VALUE;
+ }
+
+ if (addr->af == AF_INET) {
+ return radix_find_compressed (tree, (guint8 *)&addr->addr.s4.sin_addr,
+ sizeof (addr->addr.s4.sin_addr));
+ }
+ else if (addr->af == AF_INET6) {
+ return radix_find_compressed (tree, (guint8 *)&addr->addr.s6.sin6_addr,
+ sizeof (addr->addr.s6.sin6_addr));
+ }
+
+ return RADIX_NO_VALUE;
+}
+
/*
* vi:ts=4
*/