From db8528701f77bf60573f4735f0424464fc92ceab Mon Sep 17 00:00:00 2001 From: Toastman Date: Fri, 14 Dec 2012 19:04:08 +0700 Subject: [PATCH] IPTraffic bugfix - thanks to RMerlin for the fix --- release/src/router/httpd/iptraffic.c | 1 + release/src/router/httpd/iptraffic.h | 1 - release/src/router/shared/tree.h | 3 ++- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/release/src/router/httpd/iptraffic.c b/release/src/router/httpd/iptraffic.c index 04f4d0e160..9b395aa97b 100644 --- a/release/src/router/httpd/iptraffic.c +++ b/release/src/router/httpd/iptraffic.c @@ -88,6 +88,7 @@ void asp_iptraffic(int argc, char **argv) { web_puts("];\n"); TREE_FORWARD_APPLY(&tree, _Node, linkage, Node_housekeeping, NULL); + TREE_INIT(&tree, Node_compare); } void iptraffic_conntrack_init() { diff --git a/release/src/router/httpd/iptraffic.h b/release/src/router/httpd/iptraffic.h index 53a056e95f..c3f11e8819 100644 --- a/release/src/router/httpd/iptraffic.h +++ b/release/src/router/httpd/iptraffic.h @@ -55,7 +55,6 @@ Tree tree = TREE_INITIALIZER(Node_compare); void Node_housekeeping(Node *self, void *info) { free(self); - TREE_REMOVE(&tree, _Node, linkage, self); } // DEBUG diff --git a/release/src/router/shared/tree.h b/release/src/router/shared/tree.h index 2abbb2d294..4f01cc7260 100644 --- a/release/src/router/shared/tree.h +++ b/release/src/router/shared/tree.h @@ -174,8 +174,9 @@ if (self) \ { \ TREE_FORWARD_APPLY_ALL_##node##_##field(self->field.avl_left, function, data); \ + struct node *right = self->field.avl_right; /* Preserve before removing */ \ function(self, data); \ - TREE_FORWARD_APPLY_ALL_##node##_##field(self->field.avl_right, function, data); \ + TREE_FORWARD_APPLY_ALL_##node##_##field(right, function, data); \ } \ } \ \ -- 2.11.4.GIT