diff options
author | Stephan Holljes <klaxa1337@googlemail.com> | 2015-06-09 22:26:48 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2015-06-10 18:17:28 +0200 |
commit | de3a7ef2042f4d82d02711d7d979630f620c73a3 (patch) | |
tree | 6a132b67bfaae85641a6526e7dcae5a2ee260271 /libavformat/http.c | |
parent | 63276fa9c1d14a17356c5e0c50eb5413dae846df (diff) | |
download | ffmpeg-de3a7ef2042f4d82d02711d7d979630f620c73a3.tar.gz |
lavf/http: Correctly terminate session with HTTP POST client.
Send a footer to correctly close client sockets.
This fixes network errors in client applications.
Signed-off-by: Stephan Holljes <klaxa1337@googlemail.com>
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavformat/http.c')
-rw-r--r-- | libavformat/http.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/libavformat/http.c b/libavformat/http.c index 2db2dea51e..676bfd5c5a 100644 --- a/libavformat/http.c +++ b/libavformat/http.c @@ -325,6 +325,7 @@ static int http_listen(URLContext *h, const char *uri, int flags, char lower_url[100]; const char *lower_proto = "tcp"; int port, new_location; + s->chunked_post = 1; av_url_split(proto, sizeof(proto), NULL, 0, hostname, sizeof(hostname), &port, NULL, 0, uri); if (!strcmp(proto, "https")) @@ -1242,7 +1243,8 @@ static int http_shutdown(URLContext *h, int flags) HTTPContext *s = h->priv_data; /* signal end of chunked encoding if used */ - if ((flags & AVIO_FLAG_WRITE) && s->chunked_post) { + if (((flags & AVIO_FLAG_WRITE) && s->chunked_post) || + ((flags & AVIO_FLAG_READ) && s->chunked_post && s->listen)) { ret = ffurl_write(s->hd, footer, sizeof(footer) - 1); ret = ret > 0 ? 0 : ret; s->end_chunked_post = 1; |