From c2a61f7a4cdc1b8203bca12dfd6665e99bf74df5 Mon Sep 17 00:00:00 2001 From: wfaulk Date: Tue, 24 Jan 2023 00:39:29 -0500 Subject: [PATCH] Make oping/noping not need elevated privs in MacOS --- src/liboping.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/liboping.c b/src/liboping.c index bf9e059..d9806a6 100644 --- a/src/liboping.c +++ b/src/liboping.c @@ -980,11 +980,33 @@ static int ping_open_socket(pingobj_t *obj, int addrfam) int fd; if (addrfam == AF_INET6) { +#ifdef __APPLE__ + if (getuid()) + { + fd = socket(addrfam, SOCK_DGRAM, IPPROTO_ICMPV6); + } + else + { + fd = socket(addrfam, SOCK_RAW, IPPROTO_ICMPV6); + } +#else /* ! __APPLE__ */ fd = socket(addrfam, SOCK_RAW, IPPROTO_ICMPV6); +#endif } else if (addrfam == AF_INET) { +#ifdef __APPLE__ + if (getuid()) + { + fd = socket(addrfam, SOCK_DGRAM, IPPROTO_ICMP); + } + else + { + fd = socket(addrfam, SOCK_RAW, IPPROTO_ICMP); + } +#else /* ! __APPLE__ */ fd = socket(addrfam, SOCK_RAW, IPPROTO_ICMP); +#endif } else /* this should not happen */ {