]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
Retry handshake on non-fatal errors.
authorSimon Josefsson <simon@josefsson.org>
Thu, 13 Jul 2006 07:26:46 +0000 (07:26 +0000)
committerSimon Josefsson <simon@josefsson.org>
Thu, 13 Jul 2006 07:26:46 +0000 (07:26 +0000)
libextra/gnutls_openssl.c

index bf273b6b17a3731535831fe6a5dc14d398a5656b..d73f9dcb941386d260d50541ae2f1c928b6e1f60 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2004, 2005 Free Software Foundation
+ * Copyright (C) 2004, 2005, 2006 Free Software Foundation
  * Copyright (c) 2002 Andrew McDonald <andrew@mcdonald.org.uk>
  *
  * 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)