aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorToni Uhlig <matzeton@googlemail.com>2024-02-03 04:46:58 +0100
committerToni Uhlig <matzeton@googlemail.com>2024-02-03 04:48:29 +0100
commit920429fe3db975c22d2b6eff2bf2061126bb4bfc (patch)
tree515b40fa094090cde2ae5f1793732a20305da1d2
parent9af2b9d815632fc4d28fcd4306f5599e15b237ef (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.h5
-rw-r--r--src/lib/ndpi_main.c11
-rwxr-xr-xtests/do.sh.in4
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