X-Git-Url: https://www.tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=lib%2Frbl.h;h=2dc245aabe688a58901452ffee99c5a735456564;hp=ab6b5f990bbb11a7ef8c0bd538a09ab419a74870;hb=627f7c22b447bd464b536cd016278545674df93d;hpb=8f273f0ee265c75dd8eea65b2f1cd60a79691cd6 diff --git a/lib/rbl.h b/lib/rbl.h index ab6b5f99..2dc245aa 100644 --- a/lib/rbl.h +++ b/lib/rbl.h @@ -1,7 +1,7 @@ /* rbl.h -- header file for rbl.c - Copyright (C) 2000 Ivo Timmermans , - 2000 Guus Sliepen + Copyright (C) 2000 Ivo Timmermans , + 2000 Guus Sliepen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -17,9 +17,14 @@ along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - $Id: rbl.h,v 1.1.2.6 2000/11/19 22:12:46 guus Exp $ + $Id: rbl.h,v 1.1.2.9 2002/06/21 10:11:11 guus Exp $ */ +#ifndef __RBL_H__ +#define __RBL_H__ + +#define RBL_FOREACH(tree,rbl) for(rbl = tree->head; rbl; rbl = rbl->next) + typedef struct rbl_t { /* 'red-black tree' part */ @@ -78,8 +83,12 @@ extern void free_rbl(rbl_t *); extern void *rbl_search(rbltree_t *, void *); extern void *rbl_search_closest(rbltree_t *, void *); +extern void *rbl_search_closest_greater(rbltree_t *, void *); +extern void *rbl_search_closest_smaller(rbltree_t *, void *); extern rbl_t *rbl_search_rbl(rbltree_t *, void *); extern rbl_t *rbl_search_closest_rbl(rbltree_t *, void *); +extern rbl_t *rbl_search_closest_greater_rbl(rbltree_t *, void *); +extern rbl_t *rbl_search_closest_smaller_rbl(rbltree_t *, void *); extern rbl_t *rbl_insert(rbltree_t *, void *); extern rbl_t *rbl_unlink(rbltree_t *, void *); extern void rbl_delete(rbltree_t *, void *); @@ -91,3 +100,5 @@ extern void rbl_delete_rbltree(rbltree_t *); extern void rbl_foreach(rbltree_t *, rbl_action_t); extern void rbl_foreach_rbl(rbltree_t *, rbl_action_rbl_t); + +#endif /* __RBL_H__ */