aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <nfxjfg@googlemail.com>2015-06-13 23:55:21 +0200
committerMichael Niedermayer <michaelni@gmx.at>2015-06-18 22:09:01 +0200
commitc3c8365dbd3b677207998e5120f7b78850e3532c (patch)
tree80418f4234e1f56493b02f496083cf923a1a0daf
parent6432f8826dd15ec9ce966249f4dc6933f94cf04f (diff)
downloadffmpeg-c3c8365dbd3b677207998e5120f7b78850e3532c.tar.gz
tls_gnutls: fix hang on disconnection
GNUTLS_SHUT_RDWR means GnuTLS will keep waiting for the server's termination reply. But since we don't shutdown the TCP connection at this point yet, GnuTLS will just keep skipping actual data from the server, which basically is perceived as hang. Use GNUTLS_SHUT_WR instead, which doesn't have this problem. Signed-off-by: Michael Niedermayer <michaelni@gmx.at> (cherry picked from commit 2222f419da99ef85d49ab04e7e15b76612f4d054) Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r--libavformat/tls_gnutls.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/libavformat/tls_gnutls.c b/libavformat/tls_gnutls.c
index 942ece97ed..6388f37a8e 100644
--- a/libavformat/tls_gnutls.c
+++ b/libavformat/tls_gnutls.c
@@ -87,7 +87,7 @@ static int tls_close(URLContext *h)
{
TLSContext *c = h->priv_data;
if (c->need_shutdown)
- gnutls_bye(c->session, GNUTLS_SHUT_RDWR);
+ gnutls_bye(c->session, GNUTLS_SHUT_WR);
if (c->session)
gnutls_deinit(c->session);
if (c->cred)