X-Git-Url: https://tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fnode.c;h=b00d034be3376d66077e6b43e279cbbcdb698cf8;hp=b323dca3f3c52de8bdde53811c4adda33757e416;hb=7cf68b5e35c002511cc7468967de6a75934cc998;hpb=5cbddc68bade0d1f8ded1b784bb27bb44c5dc5dc diff --git a/src/node.c b/src/node.c index b323dca3..b00d034b 100644 --- a/src/node.c +++ b/src/node.c @@ -54,6 +54,7 @@ void exit_nodes(void) { node_t *new_node(void) { node_t *n = xmalloc_and_zero(sizeof(*n)); + if(replaywin) n->late = xmalloc_and_zero(replaywin); n->subnet_tree = new_subnet_tree(); n->edge_tree = new_edge_tree(); EVP_CIPHER_CTX_init(&n->inctx); @@ -91,6 +92,9 @@ void free_node(node_t *n) { if(n->name) free(n->name); + if(n->late) + free(n->late); + free(n); } @@ -137,6 +141,11 @@ node_t *lookup_node_udp(const sockaddr_t *sa) { } void update_node_udp(node_t *n, const sockaddr_t *sa) { + if(n == myself) { + logger(LOG_WARNING, "Trying to update UDP address of myself!\n"); + return; + } + avl_delete(node_udp_tree, n); if(n->hostname)