mirror of
https://github.com/Ponce/slackbuilds
synced 2024-11-16 19:50:19 +01:00
bd2f952d40
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
32 lines
859 B
Diff
32 lines
859 B
Diff
|
|
Adds RTT handling for ICMP destination unreachable packets
|
|
|
|
--- a/waitpacket.c
|
|
+++ b/waitpacket.c
|
|
@@ -229,6 +229,7 @@
|
|
{
|
|
struct myicmphdr icmp;
|
|
struct myiphdr quoted_ip;
|
|
+ struct myudphdr quoted_udp;
|
|
|
|
/* Check if the packet can contain the ICMP header */
|
|
if (size < ICMPHDR_SIZE) {
|
|
@@ -286,6 +287,18 @@
|
|
case 3:
|
|
if (!opt_quiet)
|
|
log_icmp_unreach(inet_ntoa(src), icmp.code);
|
|
+ if (quoted_ip.protocol == IPPROTO_UDP)
|
|
+ {
|
|
+ int sequence = 0, status;
|
|
+ float ms_delay = 0.0;
|
|
+ unsigned short port;
|
|
+
|
|
+ /* Get RTT for UDP packet */
|
|
+ memcpy("ed_udp, packet+ICMPHDR_SIZE+(quoted_ip.ihl<<2), sizeof(quoted_udp));
|
|
+ port = ntohs(quoted_udp.uh_sport);
|
|
+ status = rtt(&sequence, port, &ms_delay);
|
|
+ printf("status=%d port=%d seq=%d\n", status, port, sequence);
|
|
+ }
|
|
return 1;
|
|
case 11:
|
|
if (opt_traceroute)
|