diff options
author | Alan Somers <asomers@FreeBSD.org> | 2020-11-26 04:29:30 +0000 |
---|---|---|
committer | Alan Somers <asomers@FreeBSD.org> | 2020-11-26 04:29:30 +0000 |
commit | 3cde9171d2d50852ab782e90acf734f416246e86 (patch) | |
tree | 0d4e70ec68ec4ba273dfc9081f85959963620917 /sbin/ping/ping.c | |
parent | b05f17a12fc58914e0a5b17f90331627b600432d (diff) | |
download | src-3cde9171d2d50852ab782e90acf734f416246e86.tar.gz src-3cde9171d2d50852ab782e90acf734f416246e86.zip |
Merge ping6 to ping
There is now a single ping binary, which chooses to use ICMP or ICMPv4
based on the -4 and -6 options, and the format of the address.
Submitted by: Ján Sučan <sucanjan@gmail.com>
Sponsored by: Google LLC (Google Summer of Code 2019)
MFC after: Never
Differential Revision: https://reviews.freebsd.org/D21377
Notes
Notes:
svn path=/head/; revision=368045
Diffstat (limited to 'sbin/ping/ping.c')
-rw-r--r-- | sbin/ping/ping.c | 31 |
1 files changed, 7 insertions, 24 deletions
diff --git a/sbin/ping/ping.c b/sbin/ping/ping.c index e53e5013a71c..fe197928085e 100644 --- a/sbin/ping/ping.c +++ b/sbin/ping/ping.c @@ -100,6 +100,8 @@ __FBSDID("$FreeBSD$"); #include <time.h> #include <unistd.h> +#include "main.h" +#include "ping.h" #include "utils.h" #define INADDR_LEN ((int)sizeof(in_addr_t)) @@ -225,10 +227,9 @@ static void pr_pack(char *, ssize_t, struct sockaddr_in *, struct timespec *); static void pr_retip(struct ip *, const u_char *); static void status(int); static void stopit(int); -static void usage(void) __dead2; int -main(int argc, char *const *argv) +ping(int argc, char *const *argv) { struct sockaddr_in from, sock_in; struct in_addr ifaddr; @@ -301,7 +302,7 @@ main(int argc, char *const *argv) outpack = outpackhdr + sizeof(struct ip); while ((ch = getopt(argc, argv, - "AaC:c:DdfG:g:Hh:I:i:Ll:M:m:nop:QqRrS:s:T:t:vW:z:" + "4AaC:c:DdfG:g:Hh:I:i:Ll:M:m:nop:QqRrS:s:T:t:vW:z:" #ifdef IPSEC #ifdef IPSEC_POLICY_IPSEC "P:" @@ -310,6 +311,9 @@ main(int argc, char *const *argv) )) != -1) { switch(ch) { + case '4': + /* This option is processed in main(). */ + break; case 'A': options |= F_MISSED; break; @@ -1769,24 +1773,3 @@ capdns_setup(void) #endif return (capdnsloc); } - -#if defined(IPSEC) && defined(IPSEC_POLICY_IPSEC) -#define SECOPT " [-P policy]" -#else -#define SECOPT "" -#endif -static void -usage(void) -{ - - (void)fprintf(stderr, "%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n", -"usage: ping [-AaDdfHnoQqRrv] [-C pcp] [-c count] [-G sweepmaxsize] [-g sweepminsize]", -" [-h sweepincrsize] [-i wait] [-l preload] [-M mask | time] [-m ttl]", -" " SECOPT " [-p pattern] [-S src_addr] [-s packetsize] [-t timeout]", -" [-W waittime] [-z tos] host", -" ping [-AaDdfHLnoQqRrv] [-C pcp] [-c count] [-I iface] [-i wait] [-l preload]", -" [-M mask | time] [-m ttl]" SECOPT " [-p pattern] [-S src_addr]", -" [-s packetsize] [-T ttl] [-t timeout] [-W waittime]", -" [-z tos] mcast-group"); - exit(EX_USAGE); -} |