diff --git a/rtt.c b/rtt.c index e06343d..3c41e38 100644 --- a/rtt.c +++ b/rtt.c @@ -54,8 +54,10 @@ int rtt(int *seqp, int recvport, float *ms_delay) status = delaytable[tablepos].status; delaytable[tablepos].status = S_RECV; - sec_delay = time(NULL) - delaytable[tablepos].sec; - usec_delay = get_usec() - delaytable[tablepos].usec; + struct timeval tv; + gettimeofday(&tv, NULL); + sec_delay = tv.tv_sec - delaytable[tablepos].sec; + usec_delay = tv.tv_usec - delaytable[tablepos].usec; if (sec_delay == 0 && usec_delay < 0) usec_delay += 1000000; diff --git a/sendicmp.c b/sendicmp.c index 7efb274..ca3ba2f 100644 --- a/sendicmp.c +++ b/sendicmp.c @@ -96,8 +96,11 @@ void send_icmp_echo(void) icmp->checksum = icmp_cksum; /* adds this pkt in delaytable */ - if (opt_icmptype == ICMP_ECHO) - delaytable_add(_icmp_seq, 0, time(NULL), get_usec(), S_SENT); + if (opt_icmptype == ICMP_ECHO) { + struct timeval tv; + gettimeofday(&tv, NULL); + delaytable_add(_icmp_seq, 0, tv.tv_sec, tv.tv_usec, S_SENT); + } /* send packet */ send_ip_handler(packet, ICMPHDR_SIZE + data_size); @@ -140,8 +143,11 @@ void send_icmp_timestamp(void) icmp->checksum = icmp_cksum; /* adds this pkt in delaytable */ - if (opt_icmptype == ICMP_TIMESTAMP) - delaytable_add(_icmp_seq, 0, time(NULL), get_usec(), S_SENT); + if (opt_icmptype == ICMP_TIMESTAMP) { + struct timeval tv; + gettimeofday(&tv, NULL); + delaytable_add(_icmp_seq, 0, tv.tv_sec, tv.tv_usec, S_SENT); + } /* send packet */ send_ip_handler(packet, ICMPHDR_SIZE + sizeof(struct icmp_tstamp_data)); @@ -180,8 +186,11 @@ void send_icmp_address(void) icmp->checksum = icmp_cksum; /* adds this pkt in delaytable */ - if (opt_icmptype == ICMP_TIMESTAMP) - delaytable_add(_icmp_seq, 0, time(NULL), get_usec(), S_SENT); + if (opt_icmptype == ICMP_TIMESTAMP) { + struct timeval tv; + gettimeofday(&tv, NULL); + delaytable_add(_icmp_seq, 0, tv.tv_sec, tv.tv_usec, S_SENT); + } /* send packet */ send_ip_handler(packet, ICMPHDR_SIZE + 4); diff --git a/sendtcp.c b/sendtcp.c index 6765ad4..d2a46fc 100644 --- a/sendtcp.c +++ b/sendtcp.c @@ -86,7 +86,9 @@ void send_tcp(void) #endif /* adds this pkt in delaytable */ - delaytable_add(sequence, src_port, time(NULL), get_usec(), S_SENT); + struct timeval tv; + gettimeofday(&tv, NULL); + delaytable_add(sequence, src_port, tv.tv_sec, tv.tv_usec, S_SENT); /* send packet */ send_ip_handler(packet+PSEUDOHDR_SIZE, packet_size); diff --git a/sendudp.c b/sendudp.c index 6da7cd2..0d2440c 100644 --- a/sendudp.c +++ b/sendudp.c @@ -65,7 +65,9 @@ void send_udp(void) #endif /* adds this pkt in delaytable */ - delaytable_add(sequence, src_port, time(NULL), get_usec(), S_SENT); + struct timeval tv; + gettimeofday(&tv, NULL); + delaytable_add(sequence, src_port, tv.tv_sec, tv.tv_usec, S_SENT); /* send packet */ send_ip_handler(packet+PSEUDOHDR_SIZE, packet_size);