retry gnutls handshake on GNUTLS_E_INTERRUPTED
authorFrank Zschockelt <lm@freakysoft.de>
Sun, 29 Jan 2017 21:10:56 +0100
changeset 715 e098e49fcc34
parent 714 f3aa00120548
child 716 ec4cf766b31f
child 717 de936894985f
retry gnutls handshake on GNUTLS_E_INTERRUPTED
loudmouth/lm-ssl-gnutls.c
--- a/loudmouth/lm-ssl-gnutls.c	Sun Jan 29 21:08:55 2017 +0100
+++ b/loudmouth/lm-ssl-gnutls.c	Sun Jan 29 21:10:56 2017 +0100
@@ -284,8 +284,9 @@
     gnutls_transport_set_ptr (ssl->gnutls_session,
                               (gnutls_transport_ptr_t)(glong) fd);
 
-    while (GNUTLS_E_AGAIN == (ret = gnutls_handshake(ssl->gnutls_session)))
-	  ;
+    do {
+        ret = gnutls_handshake(ssl->gnutls_session);
+    } while (GNUTLS_E_AGAIN == ret || GNUTLS_E_INTERRUPTED == ret);
 
     if (ret >= 0) {
         auth_ok = ssl_verify_certificate (ssl, server);