- do
- {
- ret = gnutls_record_recv (ctx->session, buf + offset,
- bufsize - offset);
- }
- while (ret == GNUTLS_E_INTERRUPTED);
-
- if (ret < 0)
+ if (gnutls_record_check_pending (ctx->session) <= 0
+ && select_fd (fd, 0.0, WAIT_FOR_READ) <= 0)
+ read = 0;
+ else
+ read = gnutls_record_recv (ctx->session, buf + offset,
+ bufsize - offset);
+
+ if (read < 0)