ping return 1 if can't ping

This commit is contained in:
Tim Riker 2002-05-18 09:16:04 +00:00
parent 13c26fc1a5
commit c6def44cfc

View File

@ -1,6 +1,6 @@
/* vi: set sw=4 ts=4: */ /* vi: set sw=4 ts=4: */
/* /*
* $Id: ping.c,v 1.50 2002/03/21 14:04:43 andersen Exp $ * $Id: ping.c,v 1.51 2002/05/18 09:16:04 timr Exp $
* Mini ping implementation for busybox * Mini ping implementation for busybox
* *
* Copyright (C) 1999 by Randolph Chung <tausq@debian.org> * Copyright (C) 1999 by Randolph Chung <tausq@debian.org>
@ -147,7 +147,7 @@ static const int PINGINTERVAL = 1; /* second */
#define CLR(bit) (A(bit) &= (~B(bit))) #define CLR(bit) (A(bit) &= (~B(bit)))
#define TST(bit) (A(bit) & B(bit)) #define TST(bit) (A(bit) & B(bit))
static void ping(const char *host); static int ping(const char *host);
/* common routines */ /* common routines */
static int in_cksum(unsigned short *buf, int sz) static int in_cksum(unsigned short *buf, int sz)
@ -414,7 +414,7 @@ static void unpack(char *buf, int sz, struct sockaddr_in *from)
icmppkt->icmp_type, icmp_type_name (icmppkt->icmp_type)); icmppkt->icmp_type, icmp_type_name (icmppkt->icmp_type));
} }
static void ping(const char *host) static int ping(const char *host)
{ {
char packet[datalen + MAXIPLEN + MAXICMPLEN]; char packet[datalen + MAXIPLEN + MAXICMPLEN];
int sockopt; int sockopt;
@ -468,6 +468,7 @@ static void ping(const char *host)
break; break;
} }
pingstats(0); pingstats(0);
return(nreceived > 0);
} }
extern int ping_main(int argc, char **argv) extern int ping_main(int argc, char **argv)
@ -509,8 +510,7 @@ extern int ping_main(int argc, char **argv)
show_usage(); show_usage();
myid = getpid() & 0xFFFF; myid = getpid() & 0xFFFF;
ping(*argv); return ping(*argv);
return EXIT_SUCCESS;
} }
#endif /* ! CONFIG_FEATURE_FANCY_PING */ #endif /* ! CONFIG_FEATURE_FANCY_PING */