]> git.meshlink.io Git - meshlink/commitdiff
Send a PING packet on a meta-connection if a UDP ping failed.
authorGuus Sliepen <guus@meshlink.io>
Sat, 18 Jul 2020 12:23:56 +0000 (14:23 +0200)
committerGuus Sliepen <guus@meshlink.io>
Fri, 8 Oct 2021 18:57:24 +0000 (20:57 +0200)
If we lost a UDP ping packet, it might mean the node is down. We need to
confirm that with a PING on the meta-connection.

src/pmtu.c

index 4073825cfdc56f65d722395f257516fb81fed820..d91919eed40f9e95a653f00d7cad55389cd293a7 100644 (file)
@@ -93,6 +93,13 @@ static void udp_probe_timeout_handler(event_loop_t *loop, void *data) {
        n->mtuprobes = 0;
        n->minmtu = 0;
        n->maxmtu = MTU;
+
+       // If we also have a meta-connection to this node, send a PING on it as well
+       connection_t *c = n->connection;
+
+       if(c && !c->status.pinged) {
+               send_ping(mesh, c);
+       }
 }
 
 static void send_udp_probe_reply(meshlink_handle_t *mesh, node_t *n, vpn_packet_t *packet, uint16_t len) {