[gnutls-help] gnutls_handshake endlessly returning GNUTLS_E_AGAIN.

Max Bruce max.bruce12 at gmail.com
Sat Aug 15 00:11:56 CEST 2015

I'm running GNUTLS 3.3.17, and it's working flawlessly, except for when I
attempt STARTTLS. Right now, I'm just calling gnutls_handshake and then
wrapping read/write with the GNUTLS gnutls_record_recv/gnutls_record_send.
If I establish a connection it works fine. With STARTTLS, it just endlessly
returns EAGAIN. I am running this in non blocking mode both at socket level
& at GNUTLS level. It also takes a lot of CPU, but I can safely assume
that's because I'm just mindlessly looping, and not running a select/poll,
but first I'd like to make it work before I worry about that.

Applicable Code below:

int ret = 0;
do {
ret = gnutls_handshake(sessiond);
printf("%i\n", ret);
}while (ret < 0 && gnutls_error_is_fatal(ret) == 0);

Max Bruce
-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/attachments/20150814/dd429cb2/attachment.html>

More information about the Gnutls-help mailing list