diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2016-09-19 07:42:41 +0200 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@redhat.com> | 2016-09-19 14:18:57 +0200 |
commit | 5fde81638957e886a44f754b206a4bb41da90246 (patch) | |
tree | 3fde17f8717962925f5ff3b49e646efd7de27a9b | |
parent | 8d96e85a8d7c87909674dd0372dd8c8d481f38b1 (diff) | |
download | gnutls-5fde81638957e886a44f754b206a4bb41da90246.tar.gz |
tests: minor improvements in mini-extension
This will improve recovery from error conditions.
-rw-r--r-- | tests/mini-extension.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/tests/mini-extension.c b/tests/mini-extension.c index e298b6bed9..bcba2f2458 100644 --- a/tests/mini-extension.c +++ b/tests/mini-extension.c @@ -44,6 +44,7 @@ int main(int argc, char **argv) #include <sys/socket.h> #if !defined(_WIN32) #include <sys/wait.h> +#include <signal.h> #endif #include <unistd.h> #include <gnutls/gnutls.h> @@ -145,6 +146,7 @@ static void client(int sd) clientx509cred); gnutls_transport_set_int(session, sd); + gnutls_handshake_set_timeout(session, 20 * 1000); gnutls_ext_register("ext_client", TLSEXT_TYPE_SAMPLE, GNUTLS_EXT_TLS, ext_recv_client_params, ext_send_client_params, NULL, NULL, NULL); @@ -265,6 +267,8 @@ static void server(int sd) gnutls_ext_register("ext_server", TLSEXT_TYPE_SAMPLE, GNUTLS_EXT_TLS, ext_recv_server_params, ext_send_server_params, NULL, NULL, NULL); gnutls_transport_set_int(session, sd); + gnutls_handshake_set_timeout(session, 20 * 1000); + ret = gnutls_handshake(session); if (ret < 0) { close(sd); @@ -309,6 +313,8 @@ void doit(void) int sockets[2]; int err; + signal(SIGPIPE, SIG_IGN); + err = socketpair(AF_UNIX, SOCK_STREAM, 0, sockets); if (err == -1) { perror("socketpair"); @@ -326,10 +332,13 @@ void doit(void) if (child) { int status; /* parent */ + close(sockets[1]); server(sockets[0]); wait(&status); - } else + } else { + close(sockets[0]); client(sockets[1]); + } } #endif /* _WIN32 */ |