]> git.meshlink.io Git - meshlink/blobdiff - src/graph.c
Fix potential segmentation fault on node reachability change.
[meshlink] / src / graph.c
index 9b0184b091a0cdf15602871afcb7f5e277614720..d779ecd5f4144b2d6c92be41155924b5dbe56d02 100644 (file)
@@ -229,7 +229,9 @@ static void check_reachability(meshlink_handle_t *mesh) {
 
                        timeout_del(&mesh->loop, &n->mtutimeout);
 
-                       update_node_status(mesh, n);
+                       if(!n->status.blacklisted) {
+                               update_node_status(mesh, n);
+                       }
 
                        if(!n->status.reachable) {
                                update_node_udp(mesh, n, NULL);
@@ -240,6 +242,10 @@ static void check_reachability(meshlink_handle_t *mesh) {
                                        send_req_key(mesh, n);
                                }
                        }
+
+                       if(n->utcp) {
+                               utcp_offline(n->utcp, !n->status.reachable);
+                       }
                }
        }
 }