read_len = recv_from_to(rcvsock,
recv_pkt, sizeof(recv_pkt),
/*flags:*/ 0,
- &from_lsa->u.sa, to, from_lsa->len);
+ &from_lsa->u.sa, to, from_lsa->len);
}
return read_len;
return (type == ICMP6_TIME_EXCEEDED ? -1 : (code<<8)+1);
}
}
-
}
# if ENABLE_FEATURE_TRACEROUTE_VERBOSE
}
#else /* !ENABLE_TRACEROUTE6 */
static ALWAYS_INLINE int
-packet_ok(int read_len, len_and_sockaddr *from_lsa,
- struct sockaddr *to UNUSED_PARAM,
- int seq)
+packet_ok(int read_len,
+ len_and_sockaddr *from_lsa IF_NOT_FEATURE_TRACEROUTE_VERBOSE(UNUSED_PARAM),
+ struct sockaddr *to UNUSED_PARAM,
+ int seq)
{
return packet4_ok(read_len, &from_lsa->u.sin, seq);
}
* probe (e.g., on a multi-homed host).
*/
if (getuid() != 0)
- bb_error_msg_and_die("you must be root to use -s");
+ bb_error_msg_and_die(bb_msg_you_must_be_root);
}
if (op & OPT_WAITTIME)
waittime = xatou_range(waittime_str, 1, 24 * 60 * 60);
set_nport(dest_lsa, htons(1025));
/* dummy connect. makes kernel pick source IP (and port) */
xconnect(probe_fd, &dest_lsa->u.sa, dest_lsa->len);
+ set_nport(dest_lsa, htons(port));
/* read IP and port */
source_lsa = get_sock_lsa(probe_fd);