summaryrefslogtreecommitdiff
path: root/libavformat/http.c
diff options
context:
space:
mode:
authorAman Gupta <aman@tmm1.net>2017-12-22 16:29:41 -0800
committerAman Gupta <aman@tmm1.net>2017-12-22 16:39:37 -0800
commit54d0ef1738ff30c05e2edb5b019dbd44b694ebe6 (patch)
tree7d2a804d2a695d1213fe4827b391c22e5f29a0eb /libavformat/http.c
parent1f0eaa02aa7141f371e095540ac285698a0bdf46 (diff)
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>
Diffstat (limited to 'libavformat/http.c')
-rw-r--r--libavformat/http.c3
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;