X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=networking%2Fping.c;h=e4307d2deeb23c92571015bef5d1527592c5e0b6;hb=e0c0757d0925d7f83e2e107861c4e3ec8f525108;hp=50c7ce6e64f98344996b7369adaee3eab9afe725;hpb=cbe31dace5fb24304694d399b9eb267fbe752516;p=oweals%2Fbusybox.git diff --git a/networking/ping.c b/networking/ping.c index 50c7ce6e6..e4307d2de 100644 --- a/networking/ping.c +++ b/networking/ping.c @@ -1,6 +1,6 @@ /* vi: set sw=4 ts=4: */ /* - * $Id: ping.c,v 1.38 2001/02/20 06:14:08 andersen Exp $ + * $Id: ping.c,v 1.43 2001/05/21 20:30:51 andersen Exp $ * Mini ping implementation for busybox * * Copyright (C) 1999 by Randolph Chung @@ -54,9 +54,7 @@ /* It turns out that libc5 doesn't have proper icmp support * built into it header files, so we have to supplement it */ -#if ! defined __GLIBC__ && ! defined __UCLIBC__ -typedef unsigned int socklen_t; - +#if __GNU_LIBRARY__ < 5 static const int ICMP_MINLEN = 8; /* abs minimum */ struct icmp_ra_addr @@ -176,7 +174,7 @@ static int in_cksum(unsigned short *buf, int sz) } /* simple version */ -#ifdef BB_FEATURE_SIMPLE_PING +#ifndef BB_FEATURE_FANCY_PING static char *hostname = NULL; static void noresp(int ign) @@ -202,10 +200,7 @@ static void ping(const char *host) memset(&pingaddr, 0, sizeof(struct sockaddr_in)); pingaddr.sin_family = AF_INET; - if (!(h = gethostbyname(host))) { - error_msg("unknown host %s", host); - exit(1); - } + h = xgethostbyname(host); memcpy(&pingaddr.sin_addr, h->h_addr, sizeof(pingaddr.sin_addr)); hostname = h->h_name; @@ -256,7 +251,7 @@ extern int ping_main(int argc, char **argv) return EXIT_SUCCESS; } -#else /* ! BB_FEATURE_SIMPLE_PING */ +#else /* ! BB_FEATURE_FANCY_PING */ /* full(er) version */ static char *hostname = NULL; static struct sockaddr_in pingaddr; @@ -448,15 +443,9 @@ static void ping(const char *host) memset(&pingaddr, 0, sizeof(struct sockaddr_in)); pingaddr.sin_family = AF_INET; - if (!(h = gethostbyname(host))) { - error_msg("unknown host %s", host); - exit(1); - } - - if (h->h_addrtype != AF_INET) { - error_msg("unknown address type; only AF_INET is currently supported."); - exit(1); - } + h = xgethostbyname(host); + if (h->h_addrtype != AF_INET) + error_msg_and_die("unknown address type; only AF_INET is currently supported."); pingaddr.sin_family = AF_INET; /* h->h_addrtype */ memcpy(&pingaddr.sin_addr, h->h_addr, sizeof(pingaddr.sin_addr)); @@ -545,7 +534,7 @@ extern int ping_main(int argc, char **argv) ping(*argv); return EXIT_SUCCESS; } -#endif /* ! BB_FEATURE_SIMPLE_PING */ +#endif /* ! BB_FEATURE_FANCY_PING */ /* * Copyright (c) 1989 The Regents of the University of California.