diff options
author | Toni Uhlig <matzeton@googlemail.com> | 2024-03-21 06:15:04 +0100 |
---|---|---|
committer | Toni Uhlig <matzeton@googlemail.com> | 2024-03-21 07:26:22 +0100 |
commit | 33560d64d2f77b7ef181ea6c02d22f21fbe4e91f (patch) | |
tree | a9c92d25f780a3fd68af99d56e700f0b66d9e9ca | |
parent | 675640b0e647ff2084d973b5d3f302b3a6f978bf (diff) |
Fix example build error if memory profiling enabled.
* CI: build against libnDPI with `-DNDPI_NO_PKGCONFIG=ON` and `-DSTATIC_LIBNDPI_INSTALLDIR=/usr`
* CI: `ENABLE_DBUS=ON` for most builds
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
-rw-r--r-- | .github/workflows/build.yml | 22 | ||||
-rw-r--r-- | CMakeLists.txt | 21 | ||||
-rw-r--r-- | examples/c-influxd/c-influxd.c | 23 | ||||
-rw-r--r-- | examples/c-notifyd/c-notifyd.c | 23 |
4 files changed, 76 insertions, 13 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 789bb644d..96a3eb80d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -47,7 +47,7 @@ jobs: ndpid_examples: "-DBUILD_EXAMPLES=ON" ndpid_gcrypt: "-DNDPI_WITH_GCRYPT=ON" ndpid_zlib: "-DENABLE_ZLIB=ON" - ndpid_extras: "-DNDPI_WITH_MAXMINDDB=ON -DNDPI_WITH_PCRE=ON" + ndpid_extras: "-DNDPI_WITH_MAXMINDDB=ON -DNDPI_WITH_PCRE=ON -DENABLE_MEMORY_PROFILING=ON" sanitizer: "-DENABLE_SANITIZER=OFF -DENABLE_SANITIZER_THREAD=OFF" coverage: "-DENABLE_COVERAGE=OFF" poll: "-DFORCE_POLL=OFF" @@ -188,7 +188,7 @@ jobs: if: startsWith(matrix.os, 'ubuntu') run: | sudo apt-get update - sudo apt-get install autoconf automake cmake libtool pkg-config gettext libjson-c-dev flex bison libpcap-dev zlib1g-dev libcurl4-openssl-dev + sudo apt-get install autoconf automake cmake libtool pkg-config gettext libjson-c-dev flex bison libpcap-dev zlib1g-dev libcurl4-openssl-dev libdbus-1-dev sudo apt-get install ${{ matrix.compiler }} lcov iproute2 - name: Install Ubuntu Prerequisites (libgcrypt) if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.ndpid_gcrypt, '-DNDPI_WITH_GCRYPT=ON') @@ -210,7 +210,7 @@ jobs: - name: Configure nDPId run: | cmake -S . -B build -DCMAKE_C_COMPILER="$CMAKE_C_COMPILER" -DCMAKE_C_FLAGS="$CMAKE_C_FLAGS" -DCMAKE_MODULE_LINKER_FLAGS="$CMAKE_MODULE_LINKER_FLAGS" -DCMAKE_C_EXE_LINKER_FLAGS="$CMAKE_C_EXE_LINKER_FLAGS" \ - -DENABLE_CURL=ON -DENABLE_SYSTEMD=ON \ + -DENABLE_DBUS=ON -DENABLE_CURL=ON -DENABLE_SYSTEMD=ON \ ${{ matrix.poll }} ${{ matrix.coverage }} ${{ matrix.sanitizer }} ${{ matrix.ndpi_build }} \ ${{ matrix.ndpid_examples }} ${{ matrix.ndpid_zlib }} ${{ matrix.ndpid_gcrypt }} ${{ matrix.ndpid_extras }} - name: Build nDPId @@ -291,11 +291,21 @@ jobs: echo "Configure arguments: '$NDPI_CONFIGURE_ARGS'" ./autogen.sh --prefix=/usr --with-only-libndpi $NDPI_CONFIGURE_ARGS CC="${{ matrix.compiler }}" CXX=false \ CFLAGS="$CMAKE_C_FLAGS" && make && sudo make install; cd ..; } - test $WGET_RET -ne 0 || { echo "::info file=CMakeLists.txt::Running CMake.."; \ + test $WGET_RET -ne 0 || { echo "Running CMake.."; \ cmake -S .. -DCMAKE_C_COMPILER="$CMAKE_C_COMPILER" -DCMAKE_C_FLAGS="$CMAKE_C_FLAGS" \ -DCMAKE_C_EXE_LINKER_FLAGS="$CMAKE_C_EXE_LINKER_FLAGS" \ - -DBUILD_NDPI=OFF \ + -DBUILD_NDPI=OFF -DBUILD_EXAMPLES=ON \ + -DENABLE_DBUS=ON -DENABLE_CURL=ON -DENABLE_SYSTEMD=ON \ ${{ matrix.poll }} ${{ matrix.coverage }} \ ${{ matrix.sanitizer }} ${{ matrix.ndpid_examples }}; } - test $WGET_RET -ne 0 || { echo "::info file=CMakeLists.txt:Running Make.."; cmake --build . --verbose; } + test $WGET_RET -ne 0 || { echo "Running Make.."; cmake --build . --verbose; } + test $WGET_RET -ne 0 || { echo "Running CMake.."; \ + cmake -S .. -DCMAKE_C_COMPILER="$CMAKE_C_COMPILER" -DCMAKE_C_FLAGS="$CMAKE_C_FLAGS" \ + -DCMAKE_C_EXE_LINKER_FLAGS="$CMAKE_C_EXE_LINKER_FLAGS" \ + -DBUILD_NDPI=OFF -DBUILD_EXAMPLES=ON \ + -DENABLE_DBUS=ON -DENABLE_CURL=ON -DENABLE_SYSTEMD=ON \ + -DNDPI_NO_PKGCONFIG=ON -DSTATIC_LIBNDPI_INSTALLDIR=/usr \ + ${{ matrix.poll }} ${{ matrix.coverage }} ${{ matrix.ndpid_gcrypt }} \ + ${{ matrix.sanitizer }} ${{ matrix.ndpid_examples }}; } + test $WGET_RET -ne 0 || { echo "Running Make.."; cmake --build . --verbose; } test $WGET_RET -eq 0 -o $WGET_RET -eq 8 diff --git a/CMakeLists.txt b/CMakeLists.txt index a8875fe34..1039b05c3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -81,8 +81,10 @@ option(ENABLE_MEMORY_PROFILING "Enable dynamic memory tracking." OFF) option(ENABLE_ZLIB "Enable zlib support for nDPId (experimental)." OFF) option(ENABLE_SYSTEMD "Install systemd components." OFF) option(BUILD_EXAMPLES "Build C examples." ON) +if(BUILD_EXAMPLES) option(ENABLE_DBUS "Build DBus notification example." OFF) option(ENABLE_CURL "Build influxdb data write example." OFF) +endif() option(BUILD_NDPI "Clone and build nDPI from github." OFF) if(BUILD_NDPI) option(BUILD_NDPI_FORCE_GIT_UPDATE "Forcefully instruments nDPI build script to update the git submodule." OFF) @@ -174,11 +176,13 @@ if(ENABLE_ZLIB) set(ZLIB_DEFS "-DENABLE_ZLIB=1") pkg_check_modules(ZLIB REQUIRED zlib) endif() -if(ENABLE_DBUS) - pkg_check_modules(DBUS REQUIRED dbus-1) -endif() -if(ENABLE_CURL) - pkg_check_modules(CURL REQUIRED libcurl) +if(BUILD_EXAMPLES) + if(ENABLE_DBUS) + pkg_check_modules(DBUS REQUIRED dbus-1) + endif() + if(ENABLE_CURL) + pkg_check_modules(CURL REQUIRED libcurl) + endif() endif() if(NDPI_WITH_GCRYPT) message(STATUS "nDPI: Enable GCRYPT") @@ -290,13 +294,13 @@ if(STATIC_LIBNDPI_INSTALLDIR OR BUILD_NDPI) add_definitions("-DLIBNDPI_STATIC=1") set(STATIC_LIBNDPI_INC "${STATIC_LIBNDPI_INSTALLDIR}/include/ndpi") if(CMAKE_SIZEOF_VOID_P EQUAL 8) - if(EXISTS "${STATIC_LIBNDPI_INSTALLDIR}/lib64") + if(EXISTS "${STATIC_LIBNDPI_INSTALLDIR}/lib64/libndpi.a") set(STATIC_LIBNDPI_LIB "${STATIC_LIBNDPI_INSTALLDIR}/lib64/libndpi.a") else() set(STATIC_LIBNDPI_LIB "${STATIC_LIBNDPI_INSTALLDIR}/lib/libndpi.a") endif() else() - if(EXISTS "${STATIC_LIBNDPI_INSTALLDIR}/lib32") + if(EXISTS "${STATIC_LIBNDPI_INSTALLDIR}/lib32/libndpi.a") set(STATIC_LIBNDPI_LIB "${STATIC_LIBNDPI_INSTALLDIR}/lib32/libndpi.a") else() set(STATIC_LIBNDPI_LIB "${STATIC_LIBNDPI_INSTALLDIR}/lib/libndpi.a") @@ -483,8 +487,11 @@ if(STATIC_LIBNDPI_INSTALLDIR) message(STATUS "STATIC_LIBNDPI_INSTALLDIR: ${STATIC_LIBNDPI_INSTALLDIR}") endif() message(STATUS "BUILD_NDPI...............: ${BUILD_NDPI}") +message(STATUS "BUILD_EXAMPLES...........: ${BUILD_EXAMPLES}") +if(BUILD_EXAMPLES) message(STATUS "ENABLE_DBUS..............: ${ENABLE_DBUS}") message(STATUS "ENABLE_CURL..............: ${ENABLE_CURL}") +endif() if(BUILD_NDPI) message(STATUS "NDPI_ADDITIONAL_ARGS.....: ${NDPI_ADDITIONAL_ARGS}") endif() diff --git a/examples/c-influxd/c-influxd.c b/examples/c-influxd/c-influxd.c index c58c36ae3..6477480f6 100644 --- a/examples/c-influxd/c-influxd.c +++ b/examples/c-influxd/c-influxd.c @@ -350,6 +350,29 @@ static struct global_map const severity_map[] = {{"Low", INFLUXD_STATS_GAUGE_PTR {"Emergency", INFLUXD_STATS_GAUGE_PTR(flow_severity_emergency)}, {NULL, INFLUXD_STATS_GAUGE_PTR(flow_severity_unknown)}}; +#ifdef ENABLE_MEMORY_PROFILING +void nDPIsrvd_memprof_log_alloc(size_t alloc_size) +{ + (void)alloc_size; +} + +void nDPIsrvd_memprof_log_free(size_t free_size) +{ + (void)free_size; +} + +void nDPIsrvd_memprof_log(char const * const format, ...) +{ + va_list ap; + + va_start(ap, format); + fprintf(stderr, "%s", "nDPIsrvd MemoryProfiler: "); + vfprintf(stderr, format, ap); + fprintf(stderr, "%s\n", ""); + va_end(ap); +} +#endif + #define INFLUXDB_FORMAT() "%s=%llu," #define INFLUXDB_FORMAT_END() "%s=%llu\n" #define INFLUXDB_VALUE_COUNTER(value) #value, (unsigned long long int)influxd_statistics.counters.value diff --git a/examples/c-notifyd/c-notifyd.c b/examples/c-notifyd/c-notifyd.c index 130d22fa1..eb14c6377 100644 --- a/examples/c-notifyd/c-notifyd.c +++ b/examples/c-notifyd/c-notifyd.c @@ -75,6 +75,29 @@ static int main_thread_shutdown = 0; static char * pidfile = NULL; static char * serv_optarg = NULL; +#ifdef ENABLE_MEMORY_PROFILING +void nDPIsrvd_memprof_log_alloc(size_t alloc_size) +{ + (void)alloc_size; +} + +void nDPIsrvd_memprof_log_free(size_t free_size) +{ + (void)free_size; +} + +void nDPIsrvd_memprof_log(char const * const format, ...) +{ + va_list ap; + + va_start(ap, format); + fprintf(stderr, "%s", "nDPIsrvd MemoryProfiler: "); + vfprintf(stderr, format, ap); + fprintf(stderr, "%s\n", ""); + va_end(ap); +} +#endif + static void send_to_dbus(char const * const icon, char const * const urgency, enum dbus_level level, |