From 920429fe3db975c22d2b6eff2bf2061126bb4bfc Mon Sep 17 00:00:00 2001 From: Toni Uhlig Date: Sat, 3 Feb 2024 04:46:58 +0100 Subject: Completly disable all pthread related code in the library if `USE_GLOBAL_CONTEXT` macro is not defined. Signed-off-by: Toni Uhlig --- src/include/ndpi_typedefs.h | 5 +++++ src/lib/ndpi_main.c | 11 ++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/include/ndpi_typedefs.h b/src/include/ndpi_typedefs.h index ebad711f1..11a8e05a2 100644 --- a/src/include/ndpi_typedefs.h +++ b/src/include/ndpi_typedefs.h @@ -25,9 +25,12 @@ E * ndpi_typedefs.h #define __NDPI_TYPEDEFS_H__ #ifndef NDPI_CFFI_PREPROCESSING +#include "ndpi_config.h" +#ifdef USE_GLOBAL_CONTEXT #define HAVE_STRUCT_TIMESPEC #include #endif +#endif #include "ndpi_define.h" #ifndef NDPI_CFFI_PREPROCESSING @@ -769,7 +772,9 @@ struct ndpi_lru_cache { u_int32_t num_entries; u_int32_t ttl : 31, shared : 1; #ifndef NDPI_CFFI_PREPROCESSING +#ifdef USE_GLOBAL_CONTEXT pthread_mutex_t mutex; +#endif #endif struct ndpi_lru_cache_stats stats; struct ndpi_lru_cache_entry *entries; diff --git a/src/lib/ndpi_main.c b/src/lib/ndpi_main.c index 3c9a3b2a7..94357421b 100644 --- a/src/lib/ndpi_main.c +++ b/src/lib/ndpi_main.c @@ -3093,11 +3093,9 @@ static void free_ptree_data(void *data) { } struct ndpi_global_context *ndpi_global_init(void) { - #ifndef USE_GLOBAL_CONTEXT return NULL; -#endif - +#else struct ndpi_global_context *g_ctx = ndpi_calloc(1, sizeof(struct ndpi_global_context)); if(g_ctx == NULL) @@ -3109,6 +3107,7 @@ struct ndpi_global_context *ndpi_global_init(void) { /* Note that we don't have yet an easy way to log from this function */ return g_ctx; +#endif } /* ******************************************************************** */ @@ -9868,12 +9867,14 @@ struct ndpi_lru_cache *ndpi_lru_cache_init(u_int32_t num_entries, u_int32_t ttl, c->ttl = ttl & 0x7FFFFFFF; c->shared = !!shared; +#ifdef USE_GLOBAL_CONTEXT if(c->shared) { if(pthread_mutex_init(&c->mutex, NULL) != 0) { ndpi_free(c); return(NULL); } } +#endif c->entries = (struct ndpi_lru_cache_entry *) ndpi_calloc(num_entries, sizeof(struct ndpi_lru_cache_entry)); if(!c->entries) { @@ -9892,16 +9893,20 @@ void ndpi_lru_free_cache(struct ndpi_lru_cache *c) { static void __lru_cache_lock(struct ndpi_lru_cache *c) { +#ifdef USE_GLOBAL_CONTEXT if(c->shared) { pthread_mutex_lock(&c->mutex); } +#endif } static void __lru_cache_unlock(struct ndpi_lru_cache *c) { +#ifdef USE_GLOBAL_CONTEXT if(c->shared) { pthread_mutex_unlock(&c->mutex); } +#endif } u_int8_t ndpi_lru_find_cache(struct ndpi_lru_cache *c, u_int32_t key, -- cgit v1.2.3