diff options
author | Aman Gupta <aman@tmm1.net> | 2017-12-22 16:29:41 -0800 |
---|---|---|
committer | Aman Gupta <aman@tmm1.net> | 2017-12-22 16:39:37 -0800 |
commit | 54d0ef1738ff30c05e2edb5b019dbd44b694ebe6 (patch) | |
tree | 7d2a804d2a695d1213fe4827b391c22e5f29a0eb | |
parent | 1f0eaa02aa7141f371e095540ac285698a0bdf46 (diff) | |
download | ffmpeg-54d0ef1738ff30c05e2edb5b019dbd44b694ebe6.tar.gz |
avformat/http: return EOF from ff_http_do_new_request if previous response said Connection:close
This fixes a deadlock when using the hls demuxer's new http_persistent feature
to stream a youtube live stream over HTTPS. The youtube servers are http/1.1
compliant, but return a "Connecton: close". Before this commit, the demuxer
would attempt to send a new request on the partially shutdown connection and
cause a deadlock in the tls protocol.
Signed-off-by: Aman Gupta <aman@tmm1.net>
-rw-r--r-- | libavformat/http.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/libavformat/http.c b/libavformat/http.c index ffdf11cf7e..7a68378acb 100644 --- a/libavformat/http.c +++ b/libavformat/http.c @@ -327,6 +327,9 @@ int ff_http_do_new_request(URLContext *h, const char *uri) if (ret < 0) return ret; + if (s->willclose) + return AVERROR_EOF; + s->end_chunked_post = 0; s->chunkend = 0; s->off = 0; |