s/sliepen.warande.net/sliepen.eu.org/g
[tinc] / lib / rbl.h
index ab6b5f9..2dc245a 100644 (file)
--- a/lib/rbl.h
+++ b/lib/rbl.h
@@ -1,7 +1,7 @@
 /*
     rbl.h -- header file for rbl.c
-    Copyright (C) 2000 Ivo Timmermans <itimmermans@bigfoot.com>,
-                  2000 Guus Sliepen <guus@sliepen.warande.net>
+    Copyright (C) 2000 Ivo Timmermans <ivo@o2w.nl>,
+                  2000 Guus Sliepen <guus@sliepen.eu.org>
 
     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
     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__ */