gnutls_global_init ();
gnutls_certificate_allocate_credentials (&credentials);
+ gnutls_certificate_set_verify_flags(credentials,
+ GNUTLS_VERIFY_ALLOW_X509_V1_CA_CRT);
ca_directory = opt.ca_directory ? opt.ca_directory : "/etc/ssl/certs";
do
ret = gnutls_record_recv (ctx->session, buf, bufsize);
- while (ret == GNUTLS_E_INTERRUPTED);
+ while (ret == GNUTLS_E_INTERRUPTED || ret == GNUTLS_E_AGAIN);
if (ret < 0)
ctx->last_error = ret;
struct wgnutls_transport_context *ctx = arg;
do
ret = gnutls_record_send (ctx->session, buf, bufsize);
- while (ret == GNUTLS_E_INTERRUPTED);
+ while (ret == GNUTLS_E_INTERRUPTED || ret == GNUTLS_E_AGAIN);
if (ret < 0)
ctx->last_error = ret;
return ret;
return ret;
#else
/* XXX: Assume it was blocking before. */
- const int zero = 0;
- ret = ioctl (fd, FIONBIO, &zero);
+ const int one = 1;
+ ret = ioctl (fd, FIONBIO, &one);
if (ret < 0)
return ret;
#endif
- do
- {
- ret = gnutls_record_recv (ctx->session, buf + offset,
- bufsize - offset);
- }
- while (ret == GNUTLS_E_INTERRUPTED);
-
- read = ret;
-
+ read = gnutls_record_recv (ctx->session, buf + offset,
+ bufsize - offset);
if (read < 0)
{
if (offset)
if (ret < 0)
return ret;
#else
- const int one = 1;
- ret = ioctl (fd, FIONBIO, &one);
+ const int zero = 0;
+ ret = ioctl (fd, FIONBIO, &zero);
if (ret < 0)
return ret;
#endif