if (!node->child[bit])
{
struct trie_node *new = create_new_node(trie_pool);
- new->parent = node;
- new->depth = new->parent->depth + 1;
- new->status = NON_FIB;
+
+ *new = (struct trie_node) {
+ .parent = node,
+ .status = NON_FIB,
+ .depth = node->depth + 1,
+ };
+
node->child[bit] = new;
prefix_nodes++;
}
if (!node->child[bit])
{
struct trie_node *new = create_new_node(trie_pool);
- new->parent = node;
- new->depth = new->parent->depth + 1;
- new->status = NON_FIB;
+
+ *new = (struct trie_node) {
+ .parent = node,
+ .status = NON_FIB,
+ .depth = node->depth + 1,
+ };
+
node->child[bit] = new;
prefix_nodes++;
}
return;
}
- if (node->bucket)
+ if (IN_FIB == node->status)
{
log("%N -> %p", addr, node->bucket);
}
return;
}
- if (node->bucket)
+ if (IN_FIB == node->status)
{
log("%N -> %p", addr, node->bucket);
}