From bd2f952d409fa886d94d0be0ed35f8fae6698325 Mon Sep 17 00:00:00 2001 From: Brenton Earl Date: Mon, 9 Nov 2015 17:29:10 +0700 Subject: network/hping3: Add more patches + new maintainer. Signed-off-by: Willy Sudiarto Raharjo --- network/hping3/patches/rtt_icmp_unreachable.diff | 32 ++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 network/hping3/patches/rtt_icmp_unreachable.diff (limited to 'network/hping3/patches/rtt_icmp_unreachable.diff') diff --git a/network/hping3/patches/rtt_icmp_unreachable.diff b/network/hping3/patches/rtt_icmp_unreachable.diff new file mode 100644 index 0000000000..81fa6c194e --- /dev/null +++ b/network/hping3/patches/rtt_icmp_unreachable.diff @@ -0,0 +1,32 @@ + +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) -- cgit v1.2.3