ret = gnutls_handshake (session);
}
while (ret < 0 && gnutls_error_is_fatal(ret) == 0);
-
+
gnutls_deinit(session);
gnutls_anon_free_client_credentials(anoncred);
gnutls_global_deinit();
}
else
{
+ gnutls_bye(session, GNUTLS_SHUT_WR);
+
if (wait != 0)
{
fail ("client: handshake was completed unexpectedly\n");
gnutls_transport_set_int (session, fd);
if (wait) sleep(25);
- else do
+ else
{
- ret = gnutls_handshake (session);
+ do
+ {
+ ret = gnutls_handshake (session);
+ }
+ while (ret < 0 && gnutls_error_is_fatal(ret) == 0);
+
+ if (ret == 0)
+ gnutls_bye(session, GNUTLS_SHUT_RDWR);
}
- while (ret < 0 && gnutls_error_is_fatal(ret) == 0);
gnutls_deinit (session);
gnutls_anon_free_server_credentials(anoncred);