diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2006-10-03 10:47:35 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2006-10-03 10:47:35 +0000 |
commit | 7c1ed2e922e80b7a81da3e748cb975c876315bd5 (patch) | |
tree | 2b6b87a697619b30753d89b04cfcdd3eb13b82fe | |
parent | 1c3577f91dc2a2df0f5b229aa8063365d8756efe (diff) | |
download | busybox-7c1ed2e922e80b7a81da3e748cb975c876315bd5.tar.gz |
traceroute: do not look up icmp protocol# in /etc, it is well-known :)
-rw-r--r-- | networking/traceroute.c | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/networking/traceroute.c b/networking/traceroute.c index 3e142d01a..ceec0bc9c 100644 --- a/networking/traceroute.c +++ b/networking/traceroute.c @@ -224,6 +224,7 @@ #include <net/if.h> #include <netinet/in.h> #include <arpa/inet.h> +#include <netinet/protocols.h> #include <netinet/udp.h> #include <netinet/ip.h> #include <netinet/ip_icmp.h> @@ -921,14 +922,12 @@ int traceroute_main(int argc, char *argv[]) { int code, n; - char *cp; unsigned char *outp; u_int32_t *ap; struct sockaddr_in *from = (struct sockaddr_in *)&wherefrom; struct sockaddr_in *to = (struct sockaddr_in *)&whereto; struct hostinfo *hi; int on = 1; - struct protoent *pe; int ttl, probe, i; int seq = 0; int tos = 0; @@ -1076,16 +1075,12 @@ traceroute_main(int argc, char *argv[]) bb_show_usage(); } - cp = "icmp"; - if ((pe = getprotobyname(cp)) == NULL) - bb_perror_msg_and_die("unknown protocol %s", cp); - /* Insure the socket fds won't be 0, 1 or 2 */ do n = xopen(bb_dev_null, O_RDONLY); while (n < 2); if (n > 2) close(n); - s = xsocket(AF_INET, SOCK_RAW, pe->p_proto); + s = xsocket(AF_INET, SOCK_RAW, IP_ICMP); #ifdef CONFIG_FEATURE_TRACEROUTE_SO_DEBUG if (op & USAGE_OP_DEBUG) |