diff options
author | Remita Amine <remitamine@gmail.com> | 2019-03-27 13:03:07 +0100 |
---|---|---|
committer | Jan Ekström <jeebjp@gmail.com> | 2020-09-04 22:20:02 +0300 |
commit | 90f9f23279c179acf2ac6ea83efa689a53c460d3 (patch) | |
tree | 37e3ef7bab9be3d5c53536273fb7e655d72210c6 /libavformat/tls_gnutls.c | |
parent | f0fc6dd272698bc338ff189aa67668175b80f028 (diff) | |
download | ffmpeg-90f9f23279c179acf2ac6ea83efa689a53c460d3.tar.gz |
lavf/tls_gnutls: retry gnutls_handshake on non fatal errors
fixes #7801
Signed-off-by: Remita Amine <remitamine@gmail.com>
(cherry picked from commit bc1749c6e46099ec85110361dbe6f7994a63040d)
Diffstat (limited to 'libavformat/tls_gnutls.c')
-rw-r--r-- | libavformat/tls_gnutls.c | 12 |
1 files 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); p->need_shutdown = 1; if (c->verify) { unsigned int status, cert_list_size; |