[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Bug-wget] gnutls_handshake can return GNUTLS_E_INTERRUPTED
From: |
Daniel Stenberg |
Subject: |
Re: [Bug-wget] gnutls_handshake can return GNUTLS_E_INTERRUPTED |
Date: |
Thu, 30 Jun 2016 17:18:36 +0200 (CEST) |
User-agent: |
Alpine 2.20 (DEB 67 2015-01-07) |
On Thu, 30 Jun 2016, Tim Ruehsen wrote:
I believe, we already handle that case. If GNUTLS_E_INTERRUPTED occurs, we
restart the loop and re-enter gnutls_handshake(). This happens for all
non-fatal errors.
Right, but then it won't wait for the socket and just busy-loop. The
gnutls_record_get_direction man page[*] seems to suggest that waiting for the
socket is the appropriate way:
This function provides information about the internals of the record protocol
and is only useful if a prior gnutls function call (e.g. gnutls_handshake())
was interrupted for some reason, that is, if a function returned
GNUTLS_E_INTERRUPTED or GNUTLS_E_AGAIN. In such a case, you might want to
call select() or poll() before calling the interrupted gnutls function again
[*] = http://linux.die.net/man/3/gnutls_record_get_direction
--
/ daniel.haxx.se