X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=src%2Fnode.c;h=f55ff370f61269a6c57bdcc532b824a85f057389;hb=157c8660a94aea6eddef4dd290ae93d40566b2d8;hp=c6213a17016b61d755973be24a0d0518cf8e7630;hpb=963cca19035a2084a385541cb35f338bb2d740a8;p=meshlink diff --git a/src/node.c b/src/node.c index c6213a17..f55ff370 100644 --- a/src/node.c +++ b/src/node.c @@ -48,9 +48,8 @@ void exit_nodes(meshlink_handle_t *mesh) { } node_t *new_node(void) { - node_t *n = xzalloc(sizeof *n); + node_t *n = xzalloc(sizeof(*n)); - if(replaywin) n->late = xzalloc(replaywin); n->edge_tree = new_edge_tree(); n->mtu = MTU; n->maxmtu = MTU; @@ -60,6 +59,8 @@ node_t *new_node(void) { } void free_node(node_t *n) { + n->status.destroyed = true; + if(n->edge_tree) free_edge_tree(n->edge_tree); @@ -71,14 +72,10 @@ void free_node(node_t *n) { if(n->mtutimeout.cb) abort(); - if(n->hostname) - free(n->hostname); - - if(n->name) - free(n->name); + free(n->hostname); + free(n->name); - if(n->late) - free(n->late); + utcp_exit(n->utcp); free(n); }