Applied 10 patches. Thank you.
On Mon, Jan 4, 2021 at 1:41 AM Alex Samorukov <[email protected]> wrote: > > This patch addressing 2 issues: > > 1. Replacing source/dest with uh_sport/uh_dport. It seems that uh_* members > are > defined on both Linux and BSD, so no #ifdef here > 2. Use SOL_IPV6 instead of SOL_RAW on the FreeBSD to fix IPV6_CHECKSUM > setsockopt > > Signed-off-by: Alex Samorukov <[email protected]> > --- > networking/traceroute.c | 11 ++++++++--- > 1 file changed, 8 insertions(+), 3 deletions(-) > > diff --git a/networking/traceroute.c b/networking/traceroute.c > index bd63e4449..7cba9d2f1 100644 > --- a/networking/traceroute.c > +++ b/networking/traceroute.c > @@ -716,8 +716,8 @@ packet4_ok(int read_len, int seq) > // 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 == ident */ > - && up->dest == htons(port + seq) > + /* && up->uh_sport == ident */ > + && up->uh_dport == htons(port + seq) > ) { > return (type == ICMP_TIMXCEED ? -1 : code + > 1); > } > @@ -985,8 +985,13 @@ traceroute_init(int op, char **argv) > snd = xsocket(AF_INET, SOCK_DGRAM, 0); > } > #if ENABLE_TRACEROUTE6 > +#ifdef __FreeBSD__ > +#define SOL_V6_OPTION SOL_IPV6 > +#else > +#define SOL_V6_OPTION SOL_RAW > +#endif > else { > - 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"); > if (op & OPT_USE_ICMP) > snd = xsocket(AF_INET6, SOCK_RAW, > IPPROTO_ICMPV6); > -- > 2.29.1 > > _______________________________________________ > busybox mailing list > [email protected] > http://lists.busybox.net/mailman/listinfo/busybox _______________________________________________ busybox mailing list [email protected] http://lists.busybox.net/mailman/listinfo/busybox
