traceroute: fix compile error due to FreeBSD compat

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2021-08-15 20:06:52 +02:00
parent 98cb561b5f
commit 2a1ce6b20e

View File

@ -713,11 +713,16 @@ packet4_ok(int read_len, int seq)
up = (struct udphdr *)((char *)hip + hlen); up = (struct udphdr *)((char *)hip + hlen);
if (hlen + 12 <= read_len if (hlen + 12 <= read_len
&& hip->ip_p == IPPROTO_UDP && hip->ip_p == IPPROTO_UDP
// Off: since we do not form the entire IP packet, #if !defined(__FreeBSD__)
// Disabled source check: since we do not form the entire IP packet,
// but defer it to kernel, we can't set source port, // but defer it to kernel, we can't set source port,
// and thus can't check it here in the reply // and thus can't check it here in the reply
/* && up->source == ident */
&& up->dest == htons(port + seq)
#else
/* && up->uh_sport == ident */ /* && up->uh_sport == ident */
&& up->uh_dport == htons(port + seq) && up->uh_dport == htons(port + seq)
#endif
) { ) {
return (type == ICMP_TIMXCEED ? -1 : code + 1); return (type == ICMP_TIMXCEED ? -1 : code + 1);
} }