aboutsummaryrefslogtreecommitdiffstats
path: root/mtu.c
diff options
context:
space:
mode:
Diffstat (limited to 'mtu.c')
-rw-r--r--mtu.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/mtu.c b/mtu.c
index 1a3c42c..01af3ed 100644
--- a/mtu.c
+++ b/mtu.c
@@ -93,9 +93,9 @@ static void do_inject(void)
struct sockaddr_in from;
int len, seq = 0;
+ icmp_send_ping(fd, (struct sockaddr *) &to, sizeof(to),
+ ++seq, mtu_size);
for (;;) {
- icmp_send_ping(fd, (struct sockaddr *) &to, sizeof(to),
- ++seq, mtu_size);
if ((len = icmp_read_reply(fd, (struct sockaddr *) &from,
sizeof(from),
buf, sizeof(buf))) <= 0)
@@ -106,9 +106,13 @@ static void do_inject(void)
(struct sockaddr *) &to))
continue;
+ if (seq != 1)
+ sleep(1);
+
+ icmp_send_ping(fd, (struct sockaddr *) &to, sizeof(to),
+ ++seq, mtu_size);
icmp_send_frag_needed(fd, (struct sockaddr *) &to, sizeof(to),
(struct iphdr *) buf, mtu_size - 2);
- sleep(1);
}
}