From e1faf705c96352906e5b867cdd772eb2808e394c Mon Sep 17 00:00:00 2001 From: Matthias Andree Date: Wed, 14 Jan 2026 20:08:41 +0000 Subject: [PATCH] Support Inotify in FreeBSD. FreeBSD 15.0 has added Linux-compatible inotify support, so enable it by looking if the version matches. Since FreeBSD inotify has seen a few bug fixes in 2025H2, so only enable it if __FreeBSD_version >= 1500068. The latter can be checked through osreldate.h or sys/param.h; the latter defines more macros that clash with dnsmasq's, such as MIN and MAX, so use the former. --- CHANGELOG | 3 +++ src/config.h | 14 +++++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 13f0de9..49ca201 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -7,6 +7,9 @@ version 2.93 is not required, was being done. Thanks to Jan Breig for spotting this. + Enable support for inotify on FreeBSD 15.0-RELEASE, which added + Linux-compatible inotify support. + version 2.92 Redesign the interaction between DNSSEC validation and per-domain diff --git a/src/config.h b/src/config.h index 0994f95..b18754d 100644 --- a/src/config.h +++ b/src/config.h @@ -142,7 +142,8 @@ HAVE_LOOP include functionality to probe for and remove DNS forwarding loops. HAVE_INOTIFY - use the Linux inotify facility to efficiently re-read configuration files. + use the Linux and FreeBSD >= 15 inotify facility + to efficiently re-read configuration files. NO_ID Don't report *.bind CHAOS info to clients, forward such requests upstream instead. @@ -375,8 +376,15 @@ HAVE_SOCKADDR_SA_LEN #undef HAVE_DUMPFILE #endif -#if defined (HAVE_LINUX_NETWORK) && !defined(NO_INOTIFY) -#define HAVE_INOTIFY +#if !defined(NO_INOTIFY) +# if defined (HAVE_LINUX_NETWORK) +# define HAVE_INOTIFY +# elif defined (__FreeBSD__) && __FreeBSD__ + 0 >= 15 +# include +# if __FreeBSD_version >= 1500068 /* 15.0.0 */ +# define HAVE_INOTIFY +# endif +# endif #endif /* This never compiles code, it's only used by the makefile to fingerprint builds. */