diff options
author | Joel Sherrill <joel.sherrill@oarcorp.com> | 2012-08-31 19:33:20 -0500 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@oarcorp.com> | 2012-08-31 19:33:20 -0500 |
commit | 234dfb80b5f3406518296314c25512d485ed4a03 (patch) | |
tree | 814cdf807e07ad6a1a0fad0436c43d410f6aee03 | |
parent | commands ping/ping6: Add initial ports of FreeBSD ping and pin6 ports (diff) | |
download | rtems-libbsd-234dfb80b5f3406518296314c25512d485ed4a03.tar.bz2 |
ping/ping6: Use getopt_r and make main unique for RTEMS
-rw-r--r-- | freebsd-userspace/commands/sbin/ping/ping.c | 19 | ||||
-rw-r--r-- | freebsd-userspace/commands/sbin/ping6/ping6.c | 20 |
2 files changed, 39 insertions, 0 deletions
diff --git a/freebsd-userspace/commands/sbin/ping/ping.c b/freebsd-userspace/commands/sbin/ping/ping.c index e7128f82..5dc84149 100644 --- a/freebsd-userspace/commands/sbin/ping/ping.c +++ b/freebsd-userspace/commands/sbin/ping/ping.c @@ -1,3 +1,7 @@ +#ifdef __rtems__ +#define __need_getopt_newlib +#include <getopt.h> +#endif /* * Copyright (c) 1989, 1993 * The Regents of the University of California. All rights reserved. @@ -225,7 +229,11 @@ static void tvsub(struct timeval *, struct timeval *); static void usage(void) __dead2; int +#ifdef __rtems__ +main_ping(argc, argv) +#else main(argc, argv) +#endif int argc; char *const *argv; { @@ -254,6 +262,9 @@ main(argc, argv) char rspace[MAX_IPOPTLEN]; /* record route space */ #endif unsigned char loop, mttl; +#ifdef __rtems__ + struct getopt_data getopt_reent; +#endif payload = source = NULL; #ifdef IPSEC_POLICY_IPSEC @@ -274,13 +285,21 @@ main(argc, argv) alarmtimeout = df = preload = tos = 0; outpack = outpackhdr + sizeof(struct ip); +#ifdef __rtems__ + memset(&getopt_reent, 0, sizeof(getopt_data)); + while ((ch = getopt_r(argc, argv, +#else while ((ch = getopt(argc, argv, +#endif "Aac:DdfG:g:h:I:i:Ll:M:m:nop:QqRrS:s:T:t:vW:z:" #ifdef IPSEC #ifdef IPSEC_POLICY_IPSEC "P:" #endif /*IPSEC_POLICY_IPSEC*/ #endif /*IPSEC*/ +#ifdef __rtems__ + , &getopt_reent +#endif )) != -1) { switch(ch) { diff --git a/freebsd-userspace/commands/sbin/ping6/ping6.c b/freebsd-userspace/commands/sbin/ping6/ping6.c index d28a3c97..20b5f7ba 100644 --- a/freebsd-userspace/commands/sbin/ping6/ping6.c +++ b/freebsd-userspace/commands/sbin/ping6/ping6.c @@ -1,5 +1,8 @@ #ifdef __rtems__ #define USE_RFC2292BIS + +#define __need_getopt_newlib +#include <getopt.h> #endif /* $KAME: ping6.c,v 1.169 2003/07/25 06:01:47 itojun Exp $ */ @@ -263,7 +266,11 @@ volatile sig_atomic_t seenint; volatile sig_atomic_t seeninfo; #endif +#ifdef __rtems__ +int main_ping6(int, char *[]); +#else int main(int, char *[]); +#endif void fill(char *, char *); int get_hoplim(struct msghdr *); int get_pathmtu(struct msghdr *); @@ -295,7 +302,11 @@ char *nigroup(char *); void usage(void); int +#ifdef __rtems__ +main_ping6(argc, argv) +#else main(argc, argv) +#endif int argc; char *argv[]; { @@ -341,6 +352,9 @@ main(argc, argv) #ifdef IPV6_USE_MIN_MTU int mflag = 0; #endif +#ifdef __rtems__ + struct getopt_data getopt_reent; +#endif /* just to be sure */ memset(&smsghdr, 0, sizeof(smsghdr)); @@ -357,8 +371,14 @@ main(argc, argv) #define ADDOPTS "AE" #endif /*IPSEC_POLICY_IPSEC*/ #endif +#ifdef __rtems__ + memset(&getopt_reent, 0, sizeof(getopt_data)); + while ((ch = getopt_r(argc, argv, + "a:b:c:DdfHg:h:I:i:l:mnNop:qrRS:s:tvwW" ADDOPTS, &getopt_reent)) != -1) { +#else while ((ch = getopt(argc, argv, "a:b:c:DdfHg:h:I:i:l:mnNop:qrRS:s:tvwW" ADDOPTS)) != -1) { +#endif #undef ADDOPTS switch (ch) { case 'a': |