Skip to content

Commit

Permalink
Completly disable all pthread related code in the library if `USE_GLO…
Browse files Browse the repository at this point in the history
…BAL_CONTEXT` macro is not defined. (#2302)

Signed-off-by: Toni Uhlig <[email protected]>
  • Loading branch information
utoni authored Feb 3, 2024
1 parent 9af2b9d commit b59994f
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 5 deletions.
5 changes: 5 additions & 0 deletions src/include/ndpi_typedefs.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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;
Expand Down
11 changes: 8 additions & 3 deletions src/lib/ndpi_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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
}

/* ******************************************************************** */
Expand Down Expand Up @@ -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) {
Expand All @@ -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,
Expand Down
4 changes: 2 additions & 2 deletions tests/do.sh.in
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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

Expand Down

0 comments on commit b59994f

Please sign in to comment.