0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-12-22 09:41:54 +00:00

FIB_WALK and friends are now slightly more friendly.

This commit is contained in:
Martin Mares 1998-06-04 20:29:44 +00:00
parent 66e53309ac
commit 236d4eb8ce

View File

@ -51,15 +51,13 @@ void *fib_get(struct fib *, ip_addr *, int); /* Find or create new if nonexiste
void fib_delete(struct fib *, void *); /* Remove fib entry */ void fib_delete(struct fib *, void *); /* Remove fib entry */
void fib_free(struct fib *); /* Destroy the fib */ void fib_free(struct fib *); /* Destroy the fib */
#define FIB_WALK(fib, z, op) do { \ #define FIB_WALK(fib, z) do { \
struct fib_node *z, **ff = (fib)->hash_table; \ struct fib_node *z, **ff = (fib)->hash_table; \
unsigned int count = (fib)->hash_size; \ unsigned int count = (fib)->hash_size; \
while (count--) \ while (count--) \
for(z = *ff++; z; z=z->next) \ for(z = *ff++; z; z=z->next)
{ \
op; \ #define FIB_WALK_END } while (0)
} \
} while (0)
/* /*
* Master Routing Tables. Generally speaking, each of them is a list * Master Routing Tables. Generally speaking, each of them is a list
@ -120,12 +118,12 @@ extern rtable master_table;
void rt_init(void); void rt_init(void);
void rt_setup(rtable *, char *); void rt_setup(rtable *, char *);
net *net_find(rtable *tab, unsigned tos, ip_addr mask, unsigned len); net *net_find(rtable *tab, unsigned tos, ip_addr addr, unsigned len);
net *net_get(rtable *tab, unsigned tos, ip_addr mask, unsigned len); net *net_get(rtable *tab, unsigned tos, ip_addr addr, unsigned len);
rte *rte_find(net *net, struct proto *p); rte *rte_find(net *net, struct proto *p);
rte *rte_get_temp(struct rtattr *); rte *rte_get_temp(struct rtattr *);
void rte_update(net *net, rte *new); void rte_update(net *net, struct proto *p, rte *new);
void rte_dump(rte *); void rte_dump(net *, rte *);
void rt_dump(rtable *); void rt_dump(rtable *);
void rt_dump_all(void); void rt_dump_all(void);