From 8d0c7b1faeed1e3df6e6f90658559f373bbf63fb Mon Sep 17 00:00:00 2001 From: Toni Date: Wed, 18 Aug 2021 12:34:16 +0300 Subject: Fixed Mingw64 build, SonerCloud-CI and more. (#1273) * Added ARM build and unit test run for SonarCloud-CI. Signed-off-by: Toni Uhlig * Fixed Mingw64 build. * adapted to SonarCloud-CI workflow * removed broken and incomplete Windows example (tested on VS2017/VS2019) * removed unnecessary include (e.g. pthread.h for the library which does not make use of it) Signed-off-by: Toni Uhlig --- src/lib/ndpi_classify.c | 6 ++++++ src/lib/ndpi_main.c | 24 ------------------------ src/lib/third_party/src/ahocorasick.c | 5 +++++ 3 files changed, 11 insertions(+), 24 deletions(-) (limited to 'src/lib') diff --git a/src/lib/ndpi_classify.c b/src/lib/ndpi_classify.c index a7a02cb4e..bea56afef 100644 --- a/src/lib/ndpi_classify.c +++ b/src/lib/ndpi_classify.c @@ -688,7 +688,13 @@ ndpi_log_timestamp(char *log_ts, uint32_t log_ts_len) gettimeofday(&tv, NULL); nowtime = tv.tv_sec; +#ifdef WIN32 + /* localtime() on Windows is thread-safe */ + struct tm * nowtm_r_ptr = localtime(&nowtime); + nowtm_r = *nowtm_r_ptr; +#else localtime_r(&nowtime, &nowtm_r); +#endif strftime(tmbuf, NDPI_TIMESTAMP_LEN, "%H:%M:%S", &nowtm_r); snprintf(log_ts, log_ts_len, "%s.%06ld", tmbuf, (long)tv.tv_usec); } diff --git a/src/lib/ndpi_main.c b/src/lib/ndpi_main.c index c4535c768..38c0d7a86 100644 --- a/src/lib/ndpi_main.c +++ b/src/lib/ndpi_main.c @@ -7065,30 +7065,6 @@ char *ndpi_revision() { /* ****************************************************** */ -#ifdef WIN32 - -/* https://stackoverflow.com/questions/10905892/equivalent-of-gettimeday-for-windows */ -int gettimeofday(struct timeval *tp, struct timezone *tzp) { - // Note: some broken versions only have 8 trailing zero's, the correct epoch has 9 trailing zero's - // This magic number is the number of 100 nanosecond intervals since January 1, 1601 (UTC) - // until 00:00:00 January 1, 1970 - static const uint64_t EPOCH = ((uint64_t) 116444736000000000ULL); - - SYSTEMTIME system_time; - FILETIME file_time; - uint64_t time; - - GetSystemTime(&system_time); - SystemTimeToFileTime(&system_time, &file_time); - time = ((uint64_t) file_time.dwLowDateTime); - time += ((uint64_t) file_time.dwHighDateTime) << 32; - - tp->tv_sec = (long) ((time - EPOCH) / 10000000L); - tp->tv_usec = (long) (system_time.wMilliseconds * 1000); - return(0); -} -#endif - int NDPI_BITMASK_COMPARE(NDPI_PROTOCOL_BITMASK a, NDPI_PROTOCOL_BITMASK b) { int i; diff --git a/src/lib/third_party/src/ahocorasick.c b/src/lib/third_party/src/ahocorasick.c index f29f558dc..d9dccac2c 100644 --- a/src/lib/third_party/src/ahocorasick.c +++ b/src/lib/third_party/src/ahocorasick.c @@ -677,8 +677,13 @@ void ac_automata_dump(AC_AUTOMATA_t * thiz, FILE *file) { ai.bufstr[0] = '\0'; ac_automata_walk(thiz,dump_node_common,dump_node_str,(void *)&ai); +#ifdef WIN32 + fprintf(ai.file,"---\n mem size %lu avg node size %d, node one char %d, <=8c %d, >8c %d, range %d\n---DUMP-END-\n", + (long unsigned int)ai.memcnt,(int)ai.memcnt/(thiz->all_nodes_num+1),(int)ai.node_oc,(int)ai.node_8c,(int)ai.node_xc,(int)ai.node_xr); +#else fprintf(ai.file,"---\n mem size %zu avg node size %d, node one char %d, <=8c %d, >8c %d, range %d\n---DUMP-END-\n", ai.memcnt,(int)ai.memcnt/(thiz->all_nodes_num+1),(int)ai.node_oc,(int)ai.node_8c,(int)ai.node_xc,(int)ai.node_xr); +#endif } #endif -- cgit v1.2.3