diff options
Diffstat (limited to 'tests/tls13/psk-dumbfw.c')
-rw-r--r-- | tests/tls13/psk-dumbfw.c | 15 |
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); |