diff options
author | Oleksii Samorukov <samm@FreeBSD.org> | 2021-11-28 23:21:51 +0000 |
---|---|---|
committer | Oleksii Samorukov <samm@FreeBSD.org> | 2021-11-28 23:37:45 +0000 |
commit | ea359999d845dd038066c9bb4ad7d21a04cd17f8 (patch) | |
tree | 1acc6a744799d09717f0ac8ea7375eb4dd1db286 /sysutils/busybox/files/patch-networking_traceroute.c | |
parent | biology/hisat2: Add support for powerpc64* and aarch64 (diff) |
sysutils/busybox: update to 1.34.1
Diffstat (limited to 'sysutils/busybox/files/patch-networking_traceroute.c')
-rw-r--r-- | sysutils/busybox/files/patch-networking_traceroute.c | 39 |
1 files changed, 13 insertions, 26 deletions
diff --git a/sysutils/busybox/files/patch-networking_traceroute.c b/sysutils/busybox/files/patch-networking_traceroute.c index 9ef5f3d6f18c..f900d21eba08 100644 --- a/sysutils/busybox/files/patch-networking_traceroute.c +++ b/sysutils/busybox/files/patch-networking_traceroute.c @@ -1,28 +1,15 @@ ---- networking/traceroute.c.orig 2021-01-01 13:30:02 UTC +--- networking/traceroute.c.orig 2021-08-15 18:44:35 UTC +++ networking/traceroute.c -@@ -634,8 +634,8 @@ packet4_ok(int read_len, const struct sockaddr_in *fro - // Off: since we do not form the entire IP packet, - // but defer it to kernel, we can't set source port, - // and thus can't check it here in the reply -- /* && up->source == htons(ident) */ -- && up->dest == htons(port + seq) -+ /* && up->uh_sport == htons(ident) */ -+ && up->uh_dport == htons(port + seq) - ) { - return (type == ICMP_TIMXCEED ? -1 : code + 1); - } -@@ -932,8 +932,13 @@ common_traceroute_main(int op, char **argv) - setsockopt_SOL_SOCKET_1(rcvsock, SO_DONTROUTE); - - #if ENABLE_TRACEROUTE6 -+#ifdef __FreeBSD__ -+#define SOL_V6_OPTION SOL_IPV6 -+#else -+#define SOL_V6_OPTION SOL_RAW +@@ -963,8 +963,12 @@ traceroute_init(int op, char **argv) + if (af == AF_INET) { + xmove_fd(xsocket(AF_INET, SOCK_RAW, IPPROTO_ICMP), rcvsock); + #if ENABLE_FEATURE_TRACEROUTE_VERBOSE ++#if defined(IP_PKTINFO) + /* want recvmsg to report target local address (for -v) */ + setsockopt_1(rcvsock, IPPROTO_IP, IP_PKTINFO); ++#elif defined(IP_RECVDSTADDR) ++ setsockopt_1(rcvsock, IPPROTO_IP, IP_RECVDSTADDR); +#endif - if (af == AF_INET6) { -- if (setsockopt_int(rcvsock, SOL_RAW, IPV6_CHECKSUM, 2) != 0) -+ if (setsockopt_int(rcvsock, SOL_V6_OPTION, IPV6_CHECKSUM, 2) != 0) - bb_perror_msg_and_die("setsockopt(%s)", "IPV6_CHECKSUM"); - xmove_fd(xsocket(af, SOCK_DGRAM, 0), sndsock); - } else + #endif + } + #if ENABLE_TRACEROUTE6 |