From: Yuri Schaeffer Date: Wed, 20 May 2015 19:26:43 +0000 (+0000) Subject: Don't do lru operations on root node. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c59cec0eba8f42c7169b677e0830625888419088;p=thirdparty%2Funbound.git Don't do lru operations on root node. Update TTL when overriding a node contents. git-svn-id: file:///svn/unbound/branches/edns-subnet@3425 be551aaa-1e26-0410-a405-d3ace91eadb9 --- diff --git a/edns-subnet/addrtree.c b/edns-subnet/addrtree.c index 6c64d52a1..917b9852d 100644 --- a/edns-subnet/addrtree.c +++ b/edns-subnet/addrtree.c @@ -168,6 +168,7 @@ lru_push(struct addrtree *tree, struct addrnode *node) static void lru_update(struct addrtree *tree, struct addrnode *node) { + if (tree->root == node) return; lru_pop(tree, node); lru_push(tree, node); } @@ -348,6 +349,7 @@ addrtree_insert(struct addrtree *tree, const addrkey_t *addr, if (depth == sourcemask) { /* update this node's scope and data */ clean_node(tree, node); + node->ttl = ttl; node->elem = elem; node->scope = scope; tree->size_bytes += tree->sizefunc(elem);