]> git.meshlink.io Git - meshlink/blobdiff - src/node.c
Correctly handle incoming retransmissions of SYN packets.
[meshlink] / src / node.c
index dec86f885ea1b165619bab76cb17963a1ce4c356..5f5d235cf4d28e35929754b38576080ac8fc8836 100644 (file)
@@ -57,7 +57,7 @@ node_t *new_node(void) {
        n->edge_tree = new_edge_tree();
        n->mtu = MTU;
        n->maxmtu = MTU;
-       n->devclass = _DEV_CLASS_MAX;
+       n->devclass = DEV_CLASS_UNKNOWN;
 
        return n;
 }
@@ -65,6 +65,8 @@ node_t *new_node(void) {
 void free_node(node_t *n) {
        n->status.destroyed = true;
 
+       utcp_exit(n->utcp);
+
        if(n->edge_tree) {
                free_edge_tree(n->edge_tree);
        }
@@ -79,8 +81,7 @@ void free_node(node_t *n) {
        }
 
        free(n->name);
-
-       utcp_exit(n->utcp);
+       free(n->canonical_address);
 
        free(n);
 }
@@ -136,7 +137,7 @@ void update_node_udp(meshlink_handle_t *mesh, node_t *n, const sockaddr_t *sa) {
 
                meshlink_hint_address(mesh, (meshlink_node_t *)n, &sa->sa);
 
-               if(mesh->log_level >= MESHLINK_DEBUG) {
+               if(mesh->log_level <= MESHLINK_DEBUG) {
                        char *hostname = sockaddr2hostname(&n->address);
                        logger(mesh, MESHLINK_DEBUG, "UDP address of %s set to %s", n->name, hostname);
                        free(hostname);