bug-wget
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bug-wget] gnutls_handshake can return GNUTLS_E_INTERRUPTED


From: Tim Ruehsen
Subject: Re: [Bug-wget] gnutls_handshake can return GNUTLS_E_INTERRUPTED
Date: Thu, 30 Jun 2016 16:58:34 +0200
User-agent: KMail/4.14.10 (Linux/4.6.0-1-amd64; KDE/4.14.21; x86_64; ; )

Thanks, Daniel.

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.

That is the while part
        while (err && gnutls_error_is_fatal (err) == 0);

Tim

On Thursday 30 June 2016 15:18:18 Daniel Stenberg wrote:
> Hello,
> 
> gnutls_handshake() is documented to possibly return GNUTLS_E_INTERRUPTED as
> well as GNUTLS_E_AGAIN and should probably behave similarly for both return
> codes within wget.
> 
> diff --git a/src/gnutls.c b/src/gnutls.c
> index 63c7c33..44c497b 100644
> --- a/src/gnutls.c
> +++ b/src/gnutls.c
> @@ -463,11 +463,11 @@ _do_handshake (gnutls_session_t session, int fd,
> double timeout)
>     /* We don't stop the handshake process for non-fatal errors */
>     do
>       {
>         err = gnutls_handshake (session);
> 
> -      if (timeout && err == GNUTLS_E_AGAIN)
> +      if (timeout && ((err == GNUTLS_E_AGAIN) || (err ==
> GNUTLS_E_INTERRUPTED))) {
>             if (gnutls_record_get_direction (session))
>               {
>                 /* wait for writeability */
>                 err = select_fd (fd, timeout, WAIT_FOR_WRITE);

Attachment: signature.asc
Description: This is a digitally signed message part.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]