summaryrefslogtreecommitdiff
path: root/nDPId-test.c
diff options
context:
space:
mode:
authorToni <matzeton@googlemail.com>2023-11-06 13:25:49 +0100
committerGitHub <noreply@github.com>2023-11-06 13:25:49 +0100
commit93498fff02c5edecff102d895f5cd239cb1504a2 (patch)
tree950b8c4da0b3af990690fee16cce17421a32b3b9 /nDPId-test.c
parent1b679271693a17ce0b653b9ba45db77b731db42e (diff)
Apple/BSD port (#30)
* Add MacOS to Github CI builds. * Fixed libnDPI-4.8 CI build. * Fixed missing include for `struct sockaddr*`. * Reworked IPv4 address and netmask retrieval. Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
Diffstat (limited to 'nDPId-test.c')
-rw-r--r--nDPId-test.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/nDPId-test.c b/nDPId-test.c
index 48c0e2b70..0f3bd8539 100644
--- a/nDPId-test.c
+++ b/nDPId-test.c
@@ -923,7 +923,9 @@ static enum nDPIsrvd_callback_return distributor_json_printer(struct nDPIsrvd_so
static void * distributor_client_mainloop_thread(void * const arg)
{
struct nio io;
+#if !defined(__FreeBSD__) && !defined(__APPLE__)
int signalfd = -1;
+#endif
struct distributor_return_value * const drv = (struct distributor_return_value *)arg;
struct thread_return_value * const trv = &drv->thread_return_value;
struct nDPIsrvd_socket * mock_sock = nDPIsrvd_socket_init(sizeof(struct distributor_global_user_data),
@@ -960,12 +962,14 @@ static void * distributor_client_mainloop_thread(void * const arg)
THREAD_ERROR_GOTO(trv);
}
+#if !defined(__FreeBSD__) && !defined(__APPLE__)
signalfd = setup_signalfd(&io);
if (signalfd < 0)
{
logger(1, "Distributor signal fd setup failed: %s", strerror(errno));
THREAD_ERROR_GOTO(trv);
}
+#endif
if (thread_block_signals() != 0)
{
@@ -1159,6 +1163,7 @@ static void * distributor_client_mainloop_thread(void * const arg)
* I am just here to trigger some IP code paths.
*/
}
+#if !defined(__FreeBSD__) && !defined(__APPLE__)
else if (fd == signalfd)
{
struct signalfd_siginfo fdsi;
@@ -1178,6 +1183,7 @@ static void * distributor_client_mainloop_thread(void * const arg)
THREAD_ERROR_GOTO(trv);
}
}
+#endif
else
{
logger(1,
@@ -1251,7 +1257,9 @@ static void * distributor_client_mainloop_thread(void * const arg)
}
error:
+#if !defined(__FreeBSD__) && !defined(__APPLE__)
del_event(&io, signalfd);
+#endif
del_event(&io, mock_testfds[PIPE_TEST_READ]);
del_event(&io, mock_bufffds[PIPE_BUFFER_READ]);
del_event(&io, mock_nullfds[PIPE_NULL_READ]);
@@ -1260,7 +1268,9 @@ error:
close(mock_bufffds[PIPE_BUFFER_READ]);
close(mock_nullfds[PIPE_NULL_READ]);
close(mock_arpafds[PIPE_ARPA_READ]);
+#if !defined(__FreeBSD__) && !defined(__APPLE__)
close(signalfd);
+#endif
nio_free(&io);
nDPIsrvd_socket_free(&mock_sock);
@@ -1351,6 +1361,7 @@ static void usage(char const * const arg0)
static int thread_wait_for_termination(pthread_t thread, time_t wait_time_secs, struct thread_return_value * const trv)
{
+#if !defined(__FreeBSD__) && !defined(__APPLE__)
struct timespec ts;
if (clock_gettime(CLOCK_REALTIME, &ts) == -1)
@@ -1370,6 +1381,11 @@ static int thread_wait_for_termination(pthread_t thread, time_t wait_time_secs,
}
return 1;
+#else
+ (void)wait_time_secs;
+
+ return pthread_join(thread, (void **)&trv) != 0;
+#endif
}
static int base64_selftest()