X-Git-Url: https://tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fnet_packet.c;fp=src%2Fnet_packet.c;h=2856c616bb99b9cdb3cdbfe7ab363dec1e416795;hp=269f314c85f9ae988023c312d5635843b17be187;hb=6c987fcbc5a1e2394dcbcd999d265cb9826be82b;hpb=f4851be7f5dade24a5f43d366188c033c0f8b426 diff --git a/src/net_packet.c b/src/net_packet.c index 269f314c..2856c616 100644 --- a/src/net_packet.c +++ b/src/net_packet.c @@ -72,7 +72,7 @@ unsigned replaywin = 16; // mtuprobes == 32: send 1 burst, sleep pingtimeout second // mtuprobes == 33: no response from other side, restart PMTU discovery process -static void send_mtu_probe_handler(int fd, short events, void *data) { +static void send_mtu_probe_handler(void *data) { node_t *n = data; vpn_packet_t packet; int len, i; @@ -136,13 +136,15 @@ static void send_mtu_probe_handler(int fd, short events, void *data) { } end: - event_add(&n->mtuevent, &(struct timeval){timeout, 0}); + n->mtuevent.time = time(NULL) + timeout; + event_add(&n->mtuevent); } void send_mtu_probe(node_t *n) { - if(!timeout_initialized(&n->mtuevent)) - timeout_set(&n->mtuevent, send_mtu_probe_handler, n); - send_mtu_probe_handler(0, 0, n); + event_del(&n->mtuevent); + n->mtuevent.handler = send_mtu_probe_handler; + n->mtuevent.data = n; + send_mtu_probe_handler(n); } void mtu_probe_h(node_t *n, vpn_packet_t *packet, length_t len) {