Don't check for NULL-pointers before calling free().
[tinc] / src / node.c
index bea23c7..8f4b6ee 100644 (file)
@@ -80,6 +80,7 @@ node_t *new_node(void) {
        n->edge_tree = new_edge_tree();
        n->mtu = MTU;
        n->maxmtu = MTU;
+       n->udp_ping_rtt = -1;
 
        return n;
 }
@@ -107,17 +108,9 @@ void free_node(node_t *n) {
 
        timeout_del(&n->udp_ping_timeout);
 
-       if(n->hostname) {
-               free(n->hostname);
-       }
-
-       if(n->name) {
-               free(n->name);
-       }
-
-       if(n->late) {
-               free(n->late);
-       }
+       free(n->hostname);
+       free(n->name);
+       free(n->late);
 
        if(n->address_cache) {
                close_address_cache(n->address_cache);
@@ -151,7 +144,7 @@ void node_del(node_t *n) {
 }
 
 node_t *lookup_node(char *name) {
-       node_t n = {NULL};
+       node_t n = {0};
 
        n.name = name;
 
@@ -211,16 +204,17 @@ bool dump_nodes(connection_t *c) {
                }
 
                id[sizeof(id) - 1] = 0;
-               send_request(c, "%d %d %s %s %s %d %d %d %d %x %x %s %s %d %d %d %d %ld", CONTROL, REQ_DUMP_NODES,
-                            n->name, id, n->hostname ? : "unknown port unknown",
+               send_request(c, "%d %d %s %s %s %d %d %d %d %x %x %s %s %d %d %d %d %ld %d %"PRIu64" %"PRIu64" %"PRIu64" %"PRIu64, CONTROL, REQ_DUMP_NODES,
+                            n->name, id, n->hostname ? n->hostname : "unknown port unknown",
 #ifdef DISABLE_LEGACY
                             0, 0, 0,
 #else
                             cipher_get_nid(n->outcipher), digest_get_nid(n->outdigest), (int)digest_length(n->outdigest),
 #endif
                             n->outcompression, n->options, bitfield_to_int(&n->status, sizeof(n->status)),
-                            n->nexthop ? n->nexthop->name : "-", n->via ? n->via->name ? : "-" : "-", n->distance,
-                            n->mtu, n->minmtu, n->maxmtu, (long)n->last_state_change);
+                            n->nexthop ? n->nexthop->name : "-", n->via && n->via->name ? n->via->name : "-", n->distance,
+                            n->mtu, n->minmtu, n->maxmtu, (long)n->last_state_change, n->udp_ping_rtt,
+                            n->in_packets, n->in_bytes, n->out_packets, n->out_bytes);
        }
 
        return send_request(c, "%d %d", CONTROL, REQ_DUMP_NODES);