X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;ds=sidebyside;f=dummynet2%2Fradix.c;h=4bef996d24531fa06353e2809b43bad8287fe7b8;hb=HEAD;hp=7c8c4bf0f2c96e0be29ac0003c0e6316d1620903;hpb=7f9fafbbf8a2c3d7a4b9aab56d63d9ee6f4bed82;p=ipfw.git diff --git a/dummynet2/radix.c b/dummynet2/radix.c index 7c8c4bf..4bef996 100644 --- a/dummynet2/radix.c +++ b/dummynet2/radix.c @@ -54,7 +54,7 @@ #define log(x, arg...) fprintf(stderr, ## arg) #define panic(x) fprintf(stderr, "PANIC: %s", x), exit(1) #define min(a, b) ((a) < (b) ? (a) : (b) ) -#include "include/net/radix.h" +#include #endif /* !_KERNEL */ static int rn_walktree_from(struct radix_node_head *h, void *a, void *m, @@ -762,8 +762,10 @@ on2: if (m->rm_flags & RNF_NORMAL) { mmask = m->rm_leaf->rn_mask; if (tt->rn_flags & RNF_NORMAL) { +#if !defined(RADIX_MPATH) log(LOG_ERR, "Non-unique normal route, mask not entered\n"); +#endif return tt; } } else @@ -935,7 +937,9 @@ on1: m = mm; } if (m) - log(LOG_ERR, "rn_delete: Orphaned Mask %p at %p\n", m, x); + log(LOG_ERR, + "rn_delete: Orphaned Mask %p at %p\n", + m, x); } } /* @@ -1160,6 +1164,22 @@ rn_inithead(head, off) return (1); } +int +rn_detachhead(void **head) +{ + struct radix_node_head *rnh; + + KASSERT((head != NULL && *head != NULL), + ("%s: head already freed", __func__)); + rnh = *head; + + /* Free nodes. */ + Free(rnh); + + *head = NULL; + return (1); +} + void rn_init(int maxk) {