summaryrefslogtreecommitdiff
path: root/tests/tls13/psk-dumbfw.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/tls13/psk-dumbfw.c')
-rw-r--r--tests/tls13/psk-dumbfw.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/tests/tls13/psk-dumbfw.c b/tests/tls13/psk-dumbfw.c
index c9c995801e..5d8ad8b152 100644
--- a/tests/tls13/psk-dumbfw.c
+++ b/tests/tls13/psk-dumbfw.c
@@ -48,6 +48,7 @@ int main(int argc, char **argv)
#include <unistd.h>
#include <gnutls/gnutls.h>
#include <assert.h>
+#include <signal.h>
#include "tls13/ext-parse.h"
@@ -279,6 +280,15 @@ static void server(int sd, const char *prio)
success("server: finished\n");
}
+static void ch_handler(int sig)
+{
+ int status = 0;
+ wait(&status);
+ check_wait_status(status);
+ return;
+}
+
+
static
void run_test(const char *prio)
{
@@ -286,6 +296,9 @@ void run_test(const char *prio)
int err;
int sockets[2];
+ signal(SIGCHLD, ch_handler);
+ signal(SIGPIPE, SIG_IGN);
+
success("trying with %s\n", prio);
err = socketpair(AF_UNIX, SOCK_STREAM, 0, sockets);
@@ -303,7 +316,7 @@ void run_test(const char *prio)
}
if (child) {
- int status;
+ int status = 0;
/* parent */
close(sockets[1]);
server(sockets[0], prio);