X-Git-Url: https://tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Fnode.c;h=8f4b6eeeb018b3c1c718b9c3fc66dd22d00f4cc9;hb=de7d5a03c2b956ab5753faf63b8148a279a71f29;hp=c00124d59e089171b5f40f970162d9dced6e328f;hpb=f6e87ab476a0faf8b124ecaaa27f967d825e6457;p=tinc diff --git a/src/node.c b/src/node.c index c00124d5..8f4b6eee 100644 --- a/src/node.c +++ b/src/node.c @@ -20,6 +20,7 @@ #include "system.h" +#include "address_cache.h" #include "control_common.h" #include "hash.h" #include "logger.h" @@ -79,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; } @@ -106,16 +108,12 @@ void free_node(node_t *n) { timeout_del(&n->udp_ping_timeout); - if(n->hostname) { - free(n->hostname); - } - - if(n->name) { - free(n->name); - } + free(n->hostname); + free(n->name); + free(n->late); - if(n->late) { - free(n->late); + if(n->address_cache) { + close_address_cache(n->address_cache); } free(n); @@ -146,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; @@ -206,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);