slackbuilds_ponce/network/hping3/patches/rtt_icmp_unreachable.diff
Brenton Earl bd2f952d40 network/hping3: Add more patches + new maintainer.
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
2015-11-09 17:29:10 +07:00

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(&quoted_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)