diff options
author | Christian Mauderer <christian.mauderer@embedded-brains.de> | 2021-02-25 11:29:56 +0100 |
---|---|---|
committer | Christian Mauderer <christian.mauderer@embedded-brains.de> | 2021-03-26 14:07:06 +0100 |
commit | 7afe0ba8f36c0aed21bdc01d1aee4598f100baac (patch) | |
tree | ca164b7806fa941bcaf979dccd7279b9bc746fae | |
parent | a7273c070463f53611153595b18b341d3c960a01 (diff) |
ping6: Honor file descriptor maximum
This is basically the same as the patch for ping.
Update #4360
-rw-r--r-- | freebsd/sbin/ping6/ping6.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/freebsd/sbin/ping6/ping6.c b/freebsd/sbin/ping6/ping6.c index a56aae1d..2d6e5ade 100644 --- a/freebsd/sbin/ping6/ping6.c +++ b/freebsd/sbin/ping6/ping6.c @@ -115,6 +115,7 @@ __FBSDID("$FreeBSD$"); #include <getopt.h> #include <machine/rtems-bsd-program.h> #include <machine/rtems-bsd-commands.h> +#include <rtems/libio_.h> #endif /* __rtems__ */ #include <sys/param.h> #include <sys/capsicum.h> @@ -1198,7 +1199,13 @@ main(int argc, char *argv[]) struct timespec now, timeout; struct msghdr m; struct iovec iov[2]; +#ifndef __rtems__ fd_set rfds; +#else /* __rtems__ */ + fd_set big_enough_rfds[howmany(rtems_libio_number_iops, + sizeof(fd_set) * 8)]; +#define rfds (*(fd_set *)(&big_enough_rfds[0])) +#endif /* __rtems__ */ int n; /* signal handling */ @@ -1211,7 +1218,11 @@ main(int argc, char *argv[]) continue; } #endif +#ifndef __rtems__ FD_ZERO(&rfds); +#else /* __rtems__ */ + memset(big_enough_rfds, 0, sizeof(big_enough_rfds)); +#endif /* __rtems__ */ FD_SET(srecv, &rfds); clock_gettime(CLOCK_MONOTONIC, &now); timespecadd(&last, &intvl, &timeout); |