]> git.sesse.net Git - ffmpeg/commitdiff
tls_gnutls: fix hang on disconnection
authorwm4 <nfxjfg@googlemail.com>
Sat, 13 Jun 2015 21:55:21 +0000 (23:55 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Sun, 14 Jun 2015 19:40:08 +0000 (21:40 +0200)
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>
libavformat/tls_gnutls.c

index 942ece97ed67da74481808c8cfbbe354558291f6..6388f37a8e0f6368f148d07f3131a1addbe4b559 100644 (file)
@@ -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)