From d791054cfe14c311fffd65c96da3d36a433028fa Mon Sep 17 00:00:00 2001 From: Ludovic Pouzenc Date: Wed, 18 Jul 2018 10:50:33 +0200 Subject: [PATCH] Set sockets parameters before activating up send_packet timer --- echoc.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/echoc.c b/echoc.c index a337cfe..2e99be1 100644 --- a/echoc.c +++ b/echoc.c @@ -161,18 +161,6 @@ main(int argc, char *argv[]) disconnected = 0; memset(&client, 0, sizeof(client)); - /* timer values */ - itv.it_interval.tv_usec = interval*1000; - itv.it_interval.tv_sec = 0; - itv.it_value.tv_usec = interval*1000; - itv.it_value.tv_sec = 0; - if (setitimer(ITIMER_REAL, &itv, NULL) == -1) - err(2, "setitimer"); - - signal(SIGALRM, send_packet); - - gettimeofday(&last_ts, NULL); - recvbuf = malloc(len); if (recvbuf == NULL) err(2, "malloc receive buffer"); @@ -186,6 +174,18 @@ main(int argc, char *argv[]) if (setsockopt(sock, IPPROTO_IP, IP_MTU_DISCOVER, &ch, sizeof(ch)) < 0) err(2, "setsockopt IP_MTU_DISCOVER"); #endif + /* timer values */ + itv.it_interval.tv_usec = interval*1000; + itv.it_interval.tv_sec = 0; + itv.it_value.tv_usec = interval*1000; + itv.it_value.tv_sec = 0; + if (setitimer(ITIMER_REAL, &itv, NULL) == -1) + err(2, "setitimer"); + + signal(SIGALRM, send_packet); + + gettimeofday(&last_ts, NULL); + while (1) { /* poll() loop to handle interruptions by SIGALRM */ while (1) {