diff options
author | Corubba Smith <corubba@gmx.de> | 2025-03-27 00:06:18 +0100 |
---|---|---|
committer | Florian Westphal <fw@strlen.de> | 2025-05-20 12:46:00 +0200 |
commit | b039c9c9d2b8dcdd9accd1cba35a5119d48babf2 (patch) | |
tree | 83f8c2880c122cd77cb65d1ac1d3603f650c6b17 /configure.ac | |
parent | 1fe54ec39a071ea3b06e6883e542dfdcf40d2840 (diff) |
ulogd: add linux namespace helper
The new namespace helper provides an internal stable interface for
plugins to use for switching various linux namespaces. Currently only
network namespaces are supported/implemented, but can easily be extended
if needed. autoconf will enable it automatically if the required symbols
are available. If ulogd is compiled without namespace support, the
functions will simply return an error, there is no need for conditional
compilation or special handling in plugin code.
Signed-off-by: Corubba Smith <corubba@gmx.de>
Signed-off-by: Florian Westphal <fw@strlen.de>
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac index 55e6bc6..daaf69f 100644 --- a/configure.ac +++ b/configure.ac @@ -236,6 +236,27 @@ AS_IF([test "x$enable_json" != "xno"], AS_IF([test "x$libjansson_LIBS" != "x"], [enable_json=yes], [enable_json=no]) AM_CONDITIONAL([HAVE_JANSSON], [test "x$libjansson_LIBS" != "x"]) +AC_ARG_ENABLE([namespace], + [AS_HELP_STRING([--enable-namespace], [Enable linux namespace functionality in plugins supporting it [default=test]])]) +AS_IF([test "x$enable_namespace" != "xno"], [ + AC_CHECK_DECLS([setns, CLONE_NEWNET], [ + enable_namespace=yes + ], [ + AS_IF([test "x$enable_namespace" = "xyes"], [ + AC_MSG_ERROR([linux namespace support enabled, but required symbols not available]) + ], [ + enable_namespace=no + ]) + ], [[ + #define _GNU_SOURCE 1 + #include <fcntl.h> + #include <sched.h> + ]]) +]) +AS_IF([test "x$enable_namespace" = "xyes"], [ + AC_DEFINE([ENABLE_NAMESPACE], [1], [Define to 1 if you want linux namespace support.]) +]) + AC_ARG_WITH([ulogd2libdir], [AS_HELP_STRING([--with-ulogd2libdir=PATH], [Default directory to load ulogd2 plugin from [[LIBDIR/ulogd]]])], [ulogd2libdir="$withval"], @@ -283,6 +304,7 @@ EXPAND_VARIABLE(ulogd2libdir, e_ulogd2libdir) echo " Ulogd configuration: Default plugins directory: ${e_ulogd2libdir} + Linux namespace support: ${enable_namespace} Input plugins: NFLOG plugin: ${enable_nflog} NFCT plugin: ${enable_nfct} |