← Commit list

518fb3ba1

James Clarke
James Clarke
2017-10-30
SUCCESS Duration: 143s

Subject

udp_io, traceroute: Standardise IPv6 PKTINFO handling to be portable

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

libbb/udp_io.c+6 -2
@@ -8,6 +8,10 @@
*/
#include "libbb.h"
+#if defined(IPV6_PKTINFO) && !defined(IPV6_RECVPKTINFO)
+# define IPV6_RECVPKTINFO IPV6_PKTINFO
+#endif
+
/*
* This asks kernel to let us know dst addr/port of incoming packets
* We don't check for errors here. Not supported == won't be used
@@ -18,8 +22,8 @@ socket_want_pktinfo(int fd UNUSED_PARAM)
#ifdef IP_PKTINFO
setsockopt_1(fd, IPPROTO_IP, IP_PKTINFO);
#endif
-#if ENABLE_FEATURE_IPV6 && defined(IPV6_PKTINFO)
- setsockopt_1(fd, IPPROTO_IPV6, IPV6_PKTINFO);
+#if ENABLE_FEATURE_IPV6 && defined(IPV6_RECVPKTINFO)
+ setsockopt_1(fd, IPPROTO_IPV6, IPV6_RECVPKTINFO);
#endif
}
networking/traceroute.c+3 -5
@@ -311,6 +311,9 @@
# ifndef SOL_IPV6
# define SOL_IPV6 IPPROTO_IPV6
# endif
+# if defined(IPV6_PKTINFO) && !defined(IPV6_RECVPKTINFO)
+# define IPV6_RECVPKTINFO IPV6_PKTINFO
+# endif
#endif
#include "libbb.h"
@@ -911,12 +914,7 @@ common_traceroute_main(int op, char **argv)
#if ENABLE_TRACEROUTE6
if (af == AF_INET6) {
xmove_fd(xsocket(AF_INET6, SOCK_RAW, IPPROTO_ICMPV6), rcvsock);
-# ifdef IPV6_RECVPKTINFO
setsockopt_1(rcvsock, SOL_IPV6, IPV6_RECVPKTINFO);
- setsockopt_1(rcvsock, SOL_IPV6, IPV6_2292PKTINFO);
-# else
- setsockopt_1(rcvsock, SOL_IPV6, IPV6_PKTINFO);
-# endif
} else
#endif
{