[FFmpeg-devel] [PATCH] lavf/tls_gnutls: retry gnutls_handshake on non fatal errors

Michael Niedermayer michael at niedermayer.cc
Thu Mar 28 01:51:05 EET 2019


On Wed, Mar 27, 2019 at 01:03:07PM +0100, Remita Amine wrote:
> fixes #7801
> 
> Signed-off-by: Remita Amine <remitamine at gmail.com>
> ---
>  libavformat/tls_gnutls.c | 12 +++++++-----
>  1 file changed, 7 insertions(+), 5 deletions(-)
> 
> diff --git a/libavformat/tls_gnutls.c b/libavformat/tls_gnutls.c
> index e3c43683be..f32bc2821b 100644
> --- a/libavformat/tls_gnutls.c
> +++ b/libavformat/tls_gnutls.c
> @@ -182,11 +182,13 @@ static int tls_open(URLContext *h, const char *uri, int flags, AVDictionary **op
>      gnutls_transport_set_push_function(p->session, gnutls_url_push);
>      gnutls_transport_set_ptr(p->session, c->tcp);
>      gnutls_priority_set_direct(p->session, "NORMAL", NULL);
> -    ret = gnutls_handshake(p->session);
> -    if (ret) {
> -        ret = print_tls_error(h, ret);
> -        goto fail;
> -    }
> +    do {
> +        ret = gnutls_handshake(p->session);
> +        if (gnutls_error_is_fatal(ret)) {
> +            ret = print_tls_error(h, ret);
> +            goto fail;
> +        }
> +    } while (ret);

is retrying the correct action for every non fatal error ?
is there a maximum retry count ? if not this could potentially
loop forever


[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Old school: Use the lowest level language in which you can solve the problem
            conveniently.
New school: Use the highest level language in which the latest supercomputer
            can solve the problem without the user falling asleep waiting.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20190328/cac22de3/attachment.sig>


More information about the ffmpeg-devel mailing list