tls: Return AVERROR_EOF if the TLS_read/write functions return 0

OpenSSL returns 0 when the peer has closed the connection. GnuTLS
doesn't return that though, but returns
GNUTLS_E_UNEXPECTED_PACKET_LENGTH if the connection simply is closed
without a clean close notify packet.

Tested-by: Antti Seppälä <a.seppala@gmail.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
This commit is contained in:
Martin Storsjö 2012-07-27 20:22:51 +03:00
parent 76888c64b0
commit 41ecbbc7aa

View File

@ -209,7 +209,7 @@ static int tls_read(URLContext *h, uint8_t *buf, int size)
if (ret > 0)
return ret;
if (ret == 0)
return AVERROR(EIO);
return AVERROR_EOF;
if ((ret = do_tls_poll(h, ret)) < 0)
return ret;
}
@ -224,7 +224,7 @@ static int tls_write(URLContext *h, const uint8_t *buf, int size)
if (ret > 0)
return ret;
if (ret == 0)
return AVERROR(EIO);
return AVERROR_EOF;
if ((ret = do_tls_poll(h, ret)) < 0)
return ret;
}