Commit 74ea1167 authored by wm4's avatar wm4 Committed by Martin Storsjö

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: 's avatarMartin Storsjö <martin@martin.st>
parent 3b73d5c9
...@@ -87,7 +87,7 @@ static int tls_close(URLContext *h) ...@@ -87,7 +87,7 @@ static int tls_close(URLContext *h)
{ {
TLSContext *c = h->priv_data; TLSContext *c = h->priv_data;
if (c->need_shutdown) if (c->need_shutdown)
gnutls_bye(c->session, GNUTLS_SHUT_RDWR); gnutls_bye(c->session, GNUTLS_SHUT_WR);
if (c->session) if (c->session)
gnutls_deinit(c->session); gnutls_deinit(c->session);
if (c->cred) if (c->cred)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment