From: Roy Marples Date: Mon, 10 Nov 2025 22:22:02 +0000 (+0000) Subject: eloop: Fix kqueue on FreeBSD X-Git-Tag: v10.3.0~16 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9912225a21281cf1b78a12442f6069fa5dca5444;p=thirdparty%2Fdhcpcd.git eloop: Fix kqueue on FreeBSD --- diff --git a/src/eloop.c b/src/eloop.c index 25da518b..0d21d094 100644 --- a/src/eloop.c +++ b/src/eloop.c @@ -247,8 +247,13 @@ eloop_event_add(struct eloop *eloop, int fd, unsigned short events, struct eloop_event *e; bool added; #if defined(USE_KQUEUE) - struct kevent ke[2], *kep = &ke[0]; - size_t n; +#ifdef EVFILT_PROCDESC +#define NKE 3 +#else +#define NKE 2 +#endif + struct kevent ke[NKE], *kep = &ke[0]; + size_t n = NKE; #elif defined(USE_EPOLL) struct epoll_event epe; int op; @@ -286,7 +291,6 @@ eloop_event_add(struct eloop *eloop, int fd, unsigned short events, e->cb_arg = cb_arg; #if defined(USE_KQUEUE) - n = 2; if (events & ELE_READ && !(e->events & ELE_READ)) EV_SET(kep++, (uintptr_t)fd, EVFILT_READ, EV_ADD, 0, 0, e); else if (!(events & ELE_READ) && e->events & ELE_READ)