[FFmpeg-cvslog] avformat/tls_schannel: fix handling of EOF after avio changes

Hendrik Leppkes git at videolan.org
Thu Apr 19 14:27:56 EEST 2018


ffmpeg | branch: release/4.0 | Hendrik Leppkes <h.leppkes at gmail.com> | Wed Apr 18 14:09:19 2018 +0200| [0b6de235b98ca3076e85adebc922b25df79080b7] | committer: Hendrik Leppkes

avformat/tls_schannel: fix handling of EOF after avio changes

(cherry picked from commit 5c6365af454fb24f20d753ed99dd8e2b60e85035)

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=0b6de235b98ca3076e85adebc922b25df79080b7
---

 libavformat/tls_schannel.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/libavformat/tls_schannel.c b/libavformat/tls_schannel.c
index 9a6e0c92e3..f41b007773 100644
--- a/libavformat/tls_schannel.c
+++ b/libavformat/tls_schannel.c
@@ -413,11 +413,13 @@ static int tls_read(URLContext *h, uint8_t *buf, int len)
 
         ret = ffurl_read(s->tcp, c->enc_buf + c->enc_buf_offset,
                          c->enc_buf_size - c->enc_buf_offset);
-        if (ret < 0) {
+        if (ret == AVERROR_EOF) {
+            c->connection_closed = 1;
+            ret = 0;
+        } else if (ret < 0) {
             av_log(h, AV_LOG_ERROR, "Unable to read from socket\n");
             return ret;
-        } else if (ret == 0)
-            c->connection_closed = 1;
+        }
 
         c->enc_buf_offset += ret;
     }
@@ -515,7 +517,7 @@ cleanup:
     if (ret == 0 && !c->connection_closed)
         ret = AVERROR(EAGAIN);
 
-    return ret < 0 ? ret : 0;
+    return ret < 0 ? ret : AVERROR_EOF;
 }
 
 static int tls_write(URLContext *h, const uint8_t *buf, int len)



More information about the ffmpeg-cvslog mailing list