X-Git-Url: https://www.tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fnode.c;h=79320e7101f6f5a098d6957d349a3197e4d05f50;hp=351991611b2cd2a3d692213b6866cb50df7c4a25;hb=56aad1bb486675ff9aba31418708cc179eea0381;hpb=8c189c2a9b77fb326ab5f27a05bf2601e16af017 diff --git a/src/node.c b/src/node.c index 35199161..79320e71 100644 --- a/src/node.c +++ b/src/node.c @@ -150,6 +150,28 @@ void node_del(node_t *n) avl_delete(node_udp_tree, n); } +void update_node_address(node_t *n, const sockaddr_t address) { + avl_node_t *node; + + node = avl_unlink(node_udp_tree, n); + sockaddrfree(&n->address); + sockaddrcpy(&n->address, &address); + + if(n->hostname) + free(n->hostname); + + n->hostname = sockaddr2hostname(&n->address); + avl_insert_node(node_udp_tree, node); + + if(n->options & OPTION_PMTU_DISCOVERY) { + n->mtuprobes = 0; + n->minmtu = 0; + n->maxmtu = MTU; + if(n->status.validkey) + send_mtu_probe(n); + } +} + node_t *lookup_node(char *name) { node_t n = {0};