diff options
author | Toni Uhlig <matzeton@googlemail.com> | 2024-02-03 04:46:58 +0100 |
---|---|---|
committer | Toni Uhlig <matzeton@googlemail.com> | 2024-02-03 04:48:29 +0100 |
commit | 920429fe3db975c22d2b6eff2bf2061126bb4bfc (patch) | |
tree | 515b40fa094090cde2ae5f1793732a20305da1d2 | |
parent | 9af2b9d815632fc4d28fcd4306f5599e15b237ef (diff) |
Completly disable all pthread related code in the library if `USE_GLOBAL_CONTEXT` macro is not defined.improve/disable-global-ctx-and-pthread
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
-rw-r--r-- | src/include/ndpi_typedefs.h | 5 | ||||
-rw-r--r-- | src/lib/ndpi_main.c | 11 | ||||
-rwxr-xr-x | tests/do.sh.in | 4 |
3 files changed, 15 insertions, 5 deletions
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 <pthread.h> #endif +#endif #include "ndpi_define.h" #ifndef NDPI_CFFI_PREPROCESSING @@ -769,8 +772,10 @@ 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, diff --git a/tests/do.sh.in b/tests/do.sh.in index dde8587f9..086e03c9c 100755 --- a/tests/do.sh.in +++ b/tests/do.sh.in @@ -103,7 +103,7 @@ check_results() { done fi if [ $SKIP_PCAP -eq 1 ]; then - printf "%-32s\tSKIPPED\n" "$f" + printf "%-48s\tSKIPPED\n" "$f" continue fi @@ -165,7 +165,7 @@ for d in $(find ./cfgs/* -type d -maxdepth 0 2>/dev/null) ; do done fi if [ $SKIP_CFG -eq 1 ]; then - printf "Configuration \""$(basename $d)"\" \tSKIPPED\n" + printf "Configuration \""$(basename $d)"\" %-18s\tSKIPPED\n" continue fi |