X-Git-Url: https://www.tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fnet_packet.c;h=1cd03d29fcd66c834e3a38f9c1760c5cf5340a63;hp=a7ddcdf0191aa47e7c284e093ddf9a7ccaedf20c;hb=07108117ceddaff0654f9def703e717c002f3e2d;hpb=06345f89b9a1e9acaf74cbbf896559b4286c102e diff --git a/src/net_packet.c b/src/net_packet.c index a7ddcdf0..1cd03d29 100644 --- a/src/net_packet.c +++ b/src/net_packet.c @@ -62,7 +62,8 @@ static void send_udppacket(node_t *, vpn_packet_t *); unsigned replaywin = 16; bool localdiscovery = true; bool udp_discovery = true; -int udp_discovery_interval = 9; +int udp_discovery_keepalive_interval = 9; +int udp_discovery_interval = 2; int udp_discovery_timeout = 30; #define MAX_SEQNO 1073741824 @@ -874,7 +875,9 @@ static void try_udp(node_t* n) { struct timeval ping_tx_elapsed; timersub(&now, &n->udp_ping_sent, &ping_tx_elapsed); - if(ping_tx_elapsed.tv_sec >= udp_discovery_interval) { + int interval = n->status.udp_confirmed ? udp_discovery_keepalive_interval : udp_discovery_interval; + + if(ping_tx_elapsed.tv_sec >= interval) { send_udp_probe_packet(n, MAX(n->minmtu, 16)); n->udp_ping_sent = now;