X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=dummynet2%2Fradix.c;fp=dummynet2%2Fradix.c;h=47aa0b3b6221a5d4f0636cee67857f8d07fdd2f8;hb=40445faa1db58b90083115bc315d095e7eb2fe51;hp=7c8c4bf0f2c96e0be29ac0003c0e6316d1620903;hpb=fccf30d4bf6b00b317756a9ff9d2135b361d2599;p=ipfw.git diff --git a/dummynet2/radix.c b/dummynet2/radix.c index 7c8c4bf..47aa0b3 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, @@ -935,7 +935,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 +1162,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) {