From: Simon Josefsson Date: Thu, 13 Jul 2006 07:26:46 +0000 (+0000) Subject: Retry handshake on non-fatal errors. X-Git-Tag: gnutls_1_4_1~3 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=29de4eee72001bc522e3c79b543c2b3e7d8fa507;p=thirdparty%2Fgnutls.git Retry handshake on non-fatal errors. --- diff --git a/libextra/gnutls_openssl.c b/libextra/gnutls_openssl.c index bf273b6b17..d73f9dcb94 100644 --- a/libextra/gnutls_openssl.c +++ b/libextra/gnutls_openssl.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005 Free Software Foundation + * Copyright (C) 2004, 2005, 2006 Free Software Foundation * Copyright (c) 2002 Andrew McDonald * * This file is part of GNUTLS-EXTRA. @@ -373,7 +373,9 @@ SSL_connect (SSL * ssl) ssl->ctx->method->protocol_priority); } - err = gnutls_handshake (ssl->gnutls_state); + do + err = gnutls_handshake (ssl->gnutls_state); + while (ret < 0 && gnutls_error_is_fatal (ret) == 0); ssl->last_error = err; if (err < 0) @@ -430,7 +432,9 @@ SSL_accept (SSL * ssl) /* FIXME: dh params, do we want client cert? */ - err = gnutls_handshake (ssl->gnutls_state); + do + err = gnutls_handshake (ssl->gnutls_state); + while (ret < 0 && gnutls_error_is_fatal (ret) == 0); ssl->last_error = err; if (err < 0)