2008-11-21 [colin] 3.6.1cvs39
[claws.git] / src / common / socket.c
index ad1c86a5d352f3e72feed600687fe7370c267546..997ac4f1300cf3538a513eeabc5328a94c4e4603 100644 (file)
@@ -1385,11 +1385,15 @@ static gint ssl_read(gnutls_session ssl, gchar *buf, gint len)
                case 0: /* closed connection */
                        return -1;
 
+               case GNUTLS_E_REHANDSHAKE:
+                       do {
+                               r = gnutls_handshake(ssl);
+                       } while (r == GNUTLS_E_AGAIN || r == GNUTLS_E_INTERRUPTED);
+                       break; /* re-receive */
                case GNUTLS_E_AGAIN:
                case GNUTLS_E_INTERRUPTED:
                        errno = EAGAIN;
                        return -1;
-               break;
 
                default:
                        return -1;