Improve recently seen address cache
[tinc] / src / node.c
index 53013d2..3e37b8e 100644 (file)
@@ -71,7 +71,7 @@ void exit_nodes(void) {
        splay_empty_tree(&node_tree);
 }
 
-node_t *new_node(void) {
+node_t *new_node(const char *name) {
        node_t *n = xzalloc(sizeof(*n));
 
        if(replaywin) {
@@ -84,21 +84,26 @@ node_t *new_node(void) {
        n->mtu = MTU;
        n->maxmtu = MTU;
        n->udp_ping_rtt = -1;
+       n->name = xstrdup(name);
 
        return n;
 }
 
 void free_node(node_t *n) {
+       if(!n) {
+               return;
+       }
+
        splay_empty_tree(&n->subnet_tree);
        splay_empty_tree(&n->edge_tree);
 
        sockaddrfree(&n->address);
 
 #ifndef DISABLE_LEGACY
-       cipher_free(&n->incipher);
-       digest_free(&n->indigest);
-       cipher_free(&n->outcipher);
-       digest_free(&n->outdigest);
+       cipher_free(n->incipher);
+       digest_free(n->indigest);
+       cipher_free(n->outcipher);
+       digest_free(n->outdigest);
 #endif
 
        ecdsa_free(n->ecdsa);